清楚地描述我的意思, 我在这里举个例子:
function y = f(x,a)
global a
y = f1(x);
function y = f1(x)
global a
y = x + a;
在这里,我希望变量'a'用作全局变量,子函数'f1'可以调用它来计算$ x + a $。 (我的目的是减少参数的转换)
但是这个功能不起作用,除非我定义一个新变量'b'来恢复'a'的值。
问题是,如何在不定义新变量的情况下直接将'a'设为全局变量?
答案 0 :(得分:3)
我不建议您使用全局变量,特别是因为您将函数传递给函数f
。
您可以在没有全局变量的情况下获取所需的行为,但使用nested functions:
function y = f(x,a)
y = f1(x);
function y = f1(x)
y = x + a;
end
end
答案 1 :(得分:0)
你可以尝试
a=evalin('base','a');
从基础工作区获取a
的值。通常不鼓励全局变量。