我一直有同樣的問題,我真的很想知道是否有解決方案。如果我這樣做:當退出圖形時高效地斷開循環Matlab
figure
axis([-2 2 -2 2])
a=1;
h=rectangle('Position',[1,0,0.1,0.1]);
t=0;
while a==1
if ishandle(h)
t=t+0.1;
pause(0.001)
x=0.2*cos(t);
y=0.2*sin(t);
set(h, 'Position', [x, y,0.1,0.1])
else
break
end
end
我總是得到某種錯誤時,這個數字與X鍵退出:
Error using handle.handle/set
Invalid or deleted object.
這並不奇怪,因爲如果我退出,而其閱讀循環,它仍然必須在它意識到它應該被打破之前通過它。解決錯誤的一種方法是在我使用循環外部使用的東西的地方添加「if ishandle(h)」。但是,這不僅會在幾乎每一行都發送if/end的代碼,而且退出代碼的速度也很慢。這是一個更大的問題,我不介意那麼多錯誤,或者說我的代碼被垃圾郵件發送,但是每當我退出時,我需要等待另外5秒,因爲某些原因Matlab死機。
這是正常的嗎?有沒有更有效的方式來關閉一個數字?我認爲必須有一個聽衆,當x按鈕被點擊時,這隻會阻止一切...
這是非常令人沮喪的,讓我生氣,任何幫助將不勝感激。
謝謝
邁克
我使用try set(h,..)捕獲中斷結束,它工作正常,但它可能被認爲是醜陋的。還有什麼幫助的是隻把語句放在ishandle()之後,其餘的在 – MeMyselfAndI 2014-10-11 07:10:08