我在main m.file中创建了一个全局变量,并在函数m.file中使用了该变量,我没有遇到任何问题。但是,我想在函数m.file中创建一个全局变量,并在main m.file中使用该变量。 为此目的,我写道:
function cost=MY_Fun(X)
global m
.
.
end
在函数m.file中,并在主m.file中写入“global m”。但是,我得到m = []!我怎么能这样做,以便主m.file可以正确找到“m”值?
答案 0 :(得分:0)
在主脚本中,如果在函数调用m
之前使用MY_Fun
,则它将为空。但在它之后,将在MY_Fun
内分配值。只有在从主脚本调用函数之后,m
才会从MY_Fun
获取值。以下代码可能有助于您理解。
主脚本
global m
m_before_fun = m
cost1=MY_Fun(1);
m_after_fun = m
<强>功能强>
function cost=MY_Fun(X)
%%// Declare m as a global variable
global m
%%// Assign some value to m
m = 10;
cost = 1;
return; %%// I prefer RETURN to END
<强>输出强>
m_before_fun =
[]
m_after_fun =
10