Moz*_*Moz 5 matlab global function global-variables
在工作区我制作一个矩阵.

现在我可以在脚本中访问变量了.就像做变量(2)将返回4.
但在一个功能里面
function y= getvariable(x)
y=Variable(x)
end
Run Code Online (Sandbox Code Playgroud)
我收到错误
y=getvariable(2)
??? Undefined function or method 'Variable' for input
arguments of type 'double'.
Error in ==> getvariable at 3
y=Variable(x)
Run Code Online (Sandbox Code Playgroud)
那么如何使Variable矩阵全局化以便我可以通过任何函数访问它?
虽然你可以使用全局变量
>> global Variable = rand(50,12);
Run Code Online (Sandbox Code Playgroud)
...
function y = getvariable(x)
% Always needed
global Variable;
% Here ya go
y = Variable;
end
Run Code Online (Sandbox Code Playgroud)
在MUCH更好的替代方法是使用
function x = getvariable(x)
% no body needed
end
Run Code Online (Sandbox Code Playgroud)
你称之为
>> y = getvariable(Variable);
Run Code Online (Sandbox Code Playgroud)
(当然,对于这个人为的例子,这只是等于
>> y = Variable;
Run Code Online (Sandbox Code Playgroud)
)
尽管全局变量存在一些合理的用例,但一般来说它们会使代码陷入困境并使其更容易出错并且难以调试.阅读有关该主题的内容.
正如@rody建议的那样,将函数中的矩阵和x传递给它
我只是举个例子来说清楚.
就像你想要访问Variable矩阵的第10个元素一样,所以使函数成为
function y= getvariable(matrixname,no)
y=matrixname(no)
end
Run Code Online (Sandbox Code Playgroud)
如果要访问第3个元素Variable,请键入
Y =的getVariable(可变,3)
你会得到第3个元素