2013-05-30 91 views
0

SCRIPT,我能夠初始化其顯示爲工作區中的空變量,變量:初始化變量的函數

mass = []; 
speed = []; 
velocity = []; 

,但是當我把這些相同的初始化變量在功能,MATLAB不能識別它們,也不會將它們存儲在工作區中。

function myvariables() 

    mass = []; 
    speed = []; 
    velocity = []; 

如何在函數中執行初始化變量?

回答

5

MATLAB無法識別它們?哦,是的,它的確如此!

只是將這些變量存儲在不同的工作區(而不是main workspace)中,這些綁定到函數的作用域。

您可以將它們的值輸出到命令提示符以查看它們是否已初始化。例如,在你的函數初始化mass = []後寫mass來驗證這個變量的確是初始化的,就像你想的那樣。

官方文檔中有您問題相關的幾個漂亮的文章,你可能需要閱讀:

  1. Base and Function Workspaces
  2. Share Data Between Workspaces
+1

此外;你可以在包含'mass = []的行中放置['breakpoint'](http://www.mathworks.com/help/matlab/matlab_prog/debugging-process-and-features.html#brqxeeu-182) ;'。當你執行你的函數時,調試器將停止,你將有權訪問該函數的工作區,允許你看到'mass'。 – Schorsch

+0

非常感謝。我從來不知道有其他工作區。 – user1608954

0

使用斷點和F10來運行你的函數,你」會發現變量是在函數工作區中啓動的(與基本工作區不同)。

1

如果您真的想看到這些變量,請使用函數的輸出。例如:

function [mass speed velocity] = initVariables() 
     mass = []; 
     speed = []; 
     velocity = []; 
    % ... 

然後,您可以將它們傳遞給其他函數,這些函數用作初始化。但是你並不需要那麼做。

+0

這也是非常有用的。 – user1608954