在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