我有一个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的每个值?
答案 0 :(得分:2)
答案 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)
;