在SCRIPT,我能夠初始化其顯示爲工作區中的空變量,變量:初始化變量的函數
mass = [];
speed = [];
velocity = [];
,但是當我把這些相同的初始化變量在功能,MATLAB不能識別它們,也不會將它們存儲在工作區中。
function myvariables()
mass = [];
speed = [];
velocity = [];
如何在函數中執行初始化變量?
在SCRIPT,我能夠初始化其顯示爲工作區中的空變量,變量:初始化變量的函數
mass = [];
speed = [];
velocity = [];
,但是當我把這些相同的初始化變量在功能,MATLAB不能識別它們,也不會將它們存儲在工作區中。
function myvariables()
mass = [];
speed = [];
velocity = [];
如何在函數中執行初始化變量?
MATLAB無法識別它們?哦,是的,它的確如此!
只是將這些變量存儲在不同的工作區(而不是main workspace)中,這些綁定到函數的作用域。
您可以將它們的值輸出到命令提示符以查看它們是否已初始化。例如,在你的函數初始化mass = []
後寫mass
來驗證這個變量的確是初始化的,就像你想的那樣。
官方文檔中有您問題相關的幾個漂亮的文章,你可能需要閱讀:
使用斷點和F10來運行你的函數,你」會發現變量是在函數工作區中啓動的(與基本工作區不同)。
如果您真的想看到這些變量,請使用函數的輸出。例如:
function [mass speed velocity] = initVariables()
mass = [];
speed = [];
velocity = [];
% ...
然後,您可以將它們傳遞給其他函數,這些函數用作初始化。但是你並不需要那麼做。
這也是非常有用的。 – user1608954
此外;你可以在包含'mass = []的行中放置['breakpoint'](http://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html#brqxeeu-182) ;'。當你執行你的函數時,調試器將停止,你將有權訪問該函數的工作區,允許你看到'mass'。 – Schorsch
非常感謝。我從來不知道有其他工作區。 – user1608954