我把我程式贴上来,这样问比较正确
clear
n=200;
A=zeros(n);
k=zeros(n,1);
A(1,2)=1;
A(1,3)=1;
A(2,1)=1;
A(2,3)=1;
A(3,1)=1;
A(3,2)=1;
A(1,4)=1;
A(4,1)=1;
k(1,1)=3;
k(2,1)=2;
k(3,1)=2;
k(4,1)=1;
for i=5:n
for j=1:i-2
sk=sum(k(1:i-1,1));
c(1,1)=sk-k(1,1);
c(j+1,1)=c(j,1)-k(j+1,1);
end
r=rand;
newr=sk*r;
for j=1:i-1
if newr > c(1,1)
d=1;
elseif newr < c(j,1)
d=j+1;
end
end
%========================= 这里得到一个常数"d"
rr=rand;
secr=sk*rr;
for j=1:i-1
if secr > c(1,1)
dd=1;
elseif secr < c(j,1)
dd=j+1;
end
end
%========================== 这里得到一个常数"dd" 问题在这里出现!!
if dd == d
我要怎麽让他回到 rr=rand; 这个地方开始从新执行
而且乱数会重新产生???
end
%============================
k(d,1)=k(d,1)+1;
k(dd,1)=k(dd,1)+1;
A(i,d)=1;
A(i,dd)=1;
k(i,1)=2;
end
--
◎ ◢) ○
伴随着五彩光圈,蝴蝶所到之处,恶鬼全成了碎块, ◥◣◤
○ ⊙◢◥█))
蝴蝶优雅飞去,碎块才来得及落下。 ○ ◥) ◥) ◎
◢█
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.245.179
1F:→ kdjf:用while包起来啊 11/25 08:45
2F:→ icrtstyle:请教楼上的大大,我实在不知道要怎麽用while解决~~ 11/26 01:00
3F:→ icrtstyle:我必须要跑出"dd"才能去比较,这样我该怎麽使用while 11/26 01:01
4F:推 sunev:随便设一个初始值 11/26 01:14
※ 编辑: icrtstyle 来自: 140.119.125.112 (11/26 01:48)
5F:→ icrtstyle:matlab里面有类似像fortran里面"cycle"的指令吗??? 11/26 12:28