如何在函数m.file中创建全局变量?

时间:2014-04-01 16:02:03

标签: matlab

我在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”值?

1 个答案:

答案 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