函数中用了全局变量中,在命令窗口中也必须先要定义其是全局变量。所以你在命令窗口中要这样输入
global v w p n;
x=;p=;n=4;
因此在函数中要少用最好不要用全局变量。可以写成下面的形式:
function f=fval( k,x,v,w,p,n)
如果 nargin==2
v=50;w=;p=;n=4;
< p>end;if nargin==3
w=;p=;n=4;
end;
if nargin==4
p=;n=4;
end;
如果 nargin==5
n=4;
end;
temp1=0;
temp2=0;
对于 h=1:n
temp1=temp1+w(h)*x(h,k);
temp2=temp2+p(h)*x(h,k);
结束 p>
temp1=temp1-v;
max=0;
if (0 max=temp1; else max=0; end f=temp2-k*100*max; 则在调用 时可以直接x=[1 1;0 1;1 0;0 0];fval(1,x)就可以了。