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