andrewhj 发表于 2008-11-21 11:22

求助,蒙特卡洛算法

function allcost=Q(z)
clear
a=unifrnd(1000,2000,1,4);
for i=1:4
    for j=4:-1:i+1
      if a(j)<a(j-1)
            m=a(j);a(j)=a(j-1);a(j-1)=m;
      end
    end
end
b=a;
t=z
k1=0;k2=0;
amin=a(1);bmin=b(1);
while amin<t
    r=a(1)+1;a(1)=a(2)+1;a(2)=a(3)+1;a(3)=a(4)+1;
    a(4)=r+unifrnd(1000,2000);
    for i=1:4
      for j=4:-1:i+1
            if a(j)<a(j-1)
                n=a(j);a(j)=a(j-1);a(j-1)=n;
            end
      end
    end
    amin=a(1);
    k1=k1+1;
end
while bmin<t
    b(1)=bmin+unifrnd(1000,2000)+2;
    b(2)=bmin+unifrnd(1000,2000)+2;
    b(3)=bmin+unifrnd(1000,2000)+2;
    b(4)=bmin+unifrnd(1000,2000)+2;
    bmin=min(b);
    k2=k2+1;
end
x1=k1*30;
x2=k2*80;
allcost=

调用该函数无法运行,显示“Reference to a cleared variable z.”
不明白请高手指教,谢谢

dj-100 发表于 2008-11-21 11:27

你先传了z变量,又调用clear清除了,把clear命令去掉试试!

ChaChing 发表于 2008-11-21 11:31

第二行clear拿掉试试!

andrewhj 发表于 2008-11-21 11:42

回复 沙发 dj-100 的帖子

太感谢了,我原来是做的主程序,后来觉得太麻烦,想用函数来做,就搞往拿掉了

andrewhj 发表于 2008-11-21 11:42

回复 板凳 ChaChing 的帖子

太感谢了,我原来是做的主程序,后来觉得太麻烦,想用函数来做,就搞往拿掉了
页: [1]
查看完整版本: 求助,蒙特卡洛算法