声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1211|回复: 4

[综合讨论] 求助,蒙特卡洛算法

[复制链接]
发表于 2008-11-21 11:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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=[x1,x2]

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

使用道具 举报

发表于 2008-11-21 11:27 | 显示全部楼层
你先传了z变量,又调用clear清除了,把clear命令去掉试试!
发表于 2008-11-21 11:31 | 显示全部楼层
第二行clear拿掉试试!
 楼主| 发表于 2008-11-21 11:42 | 显示全部楼层

回复 沙发 dj-100 的帖子

太感谢了,我原来是做的主程序,后来觉得太麻烦,想用函数来做,就搞往拿掉了
 楼主| 发表于 2008-11-21 11:42 | 显示全部楼层

回复 板凳 ChaChing 的帖子

太感谢了,我原来是做的主程序,后来觉得太麻烦,想用函数来做,就搞往拿掉了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 14:35 , Processed in 0.063357 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表