如何在.m文件中将参数用作全局变量?

时间:2011-05-11 06:04:31

标签: matlab

清楚地描述我的意思, 我在这里举个例子:

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'设为全局变量?

2 个答案:

答案 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的值。通常不鼓励全局变量。