2013-05-30 70 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