如何在函数中定义未知值?

时间:2014-03-10 14:31:01

标签: matlab

我有一个m.file,

for ii=1:40
    m=round(X(ii,:)); % X is a matrix (40*1)
.
.
end

另外,我有一个函数,

function cost=MY_Fun(X)

 IW_Num=m*7;LW_Num=1*m;b1_Num=m*1;b2_Num=1*1;
.
.
end

因为函数中m的值未知,所以我得到一个错误。如何在函数中定义m的值,以便在函数中定义“for..end”循环中m的每个值?

2 个答案:

答案 0 :(得分:2)

尝试声明变量m global

http://www.mathworks.in/help/matlab/ref/global.html

OR

您可以将m的值作为参数传递给函数

答案 1 :(得分:1)

您可以将m作为参数放在函数中:

function cost=MY_Fun(X,m)

 IW_Num=m*7;LW_Num=1*m;b1_Num=m*1;b2_Num=1*1;
.
.
end

请注意,Matlab擅长将其函数应用于数组,因此您的第一个循环可能是不必要的,您可以使用:

m=round(X);

然后使用m(ii);

调用您的函数