我有一個關於MATLAB工作區幾個問題:工作區在MATLAB中何時更改?
什麼時候MATLAB決定改變工作空間和什麼條件提示呢?
在下面的例子中發生了一些奇怪的事情。我在第4行用斷點運行它,然後使用F10來觀察工作區變量。顯然,我發現
m
在內循環的第一次迭代中被刪除,但是不知怎麼的,MATLAB仍然知道要在外循環中進行下一次迭代!
例子:
something = 2;
somethingelse = 3;
for m = 1 : something
for n = 1 : somethingelse
%do something
clearvars -except n something somethingelse % This clears m, but it still functions
end
end
我能想到的唯一的事情就是MATLAB可能尚未更新鑑於變量不顯示列表中的存儲位置。
每個功能都有自己的工作區。清除'for'變量:WTF。另外,for被定義,因此即使清除變量,for也已知道如何迭代。 –
因此,要帶回家:當您在for循環中聲明'm'時,它與for循環之外的'm'不同。但請,爲什麼你想要刪除循環變量?這隻會導致災難性的代碼。 –
看起來他是爲了舉例清理它,並不是因爲他是一個瘋狂的白癡。 – toshiomagic