24小时热门版块排行榜    

查看: 2413  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

可爱水若寒

新虫 (初入文坛)

[求助] matlab 显示busy

从1-8之间取1-8随机取3*10^6,总长为1.64*10^7。程序如下
clear all
c=1;
L1=8; S=1.64*10^7;N1=3*10^6;
while c>0%c是统计产生的随机数里面大于L1的个数,c=0时退出循环.初始值设为1
a=[];
a(1)=round(S*rand(1));
if(a(1)==0)
a(1)=1;
end
a(2)=S-a(1);%先将1分裂为两个随机数
while length(a) m=length(a);
[tt,ss]=sort(-a);
i=ss(1);%选择a中最大值作为分裂位置
%a(i)分裂为a(i)=q*a(i)和a(i+1)=(1-q)*a(i)
a(i+2:m+1)=a(i+1:m);%后移
q=0.2*rand(1)+0.4;
temp=a(i);
a(i)=round(a(i)*q);
if(a(i)==0)
a(i)=1;
end
a(i+1)=temp-a(i);
end
c=sum(a>L1);
end
程序有问题吗  等两个小时都不行 怎样让它快点出结果
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luomia

木虫 (著名写手)

引用回帖:
8楼: Originally posted by 可爱水若寒 at 2012-07-14 09:34:04
我用的是笔记本,运行很长时间的,程序优化能说具体点吗 刚接触matlab 不太懂...

你可以上网搜搜相关的内容,这方面主要还是多练习才能体会。给你个链接去看看,http://blog.csdn.net/aris_zzy/article/details/1511581
另外,你可以用tic toc等计时函数去验证优化的效果。
一次次萍水相逢
9楼2012-07-14 10:00:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

xinzhxie

新虫 (小有名气)

程序还在跑,出错会给提示的
在循环里加点打印信息啊
2楼2012-07-13 12:25:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

可爱水若寒

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by xinzhxie at 2012-07-13 12:25:28
程序还在跑,出错会给提示的
在循环里加点打印信息啊

怎样加打印信息,我对matlab不太懂,帮忙弄一下,谢谢
3楼2012-07-13 15:01:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

klausbush

木虫 (正式写手)

【答案】应助回帖


感谢参与,应助指数 +1
xiegangmai: 金币+1, 谢谢参与! 2012-07-13 22:33:09
matlab帮助文件中搜索print,这个是打印相关的。busy就是程序还在运行啦,等等就好
水中的虫子
4楼2012-07-13 20:04:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见