![]() |
算法哪里出错呢?
做一个可靠性的仿真,代码如下:
power=zeros(9,8); cos=zeros(9,8); pspace=[0 .1 .2 .3 .5 .6 .7 .8 .9 1]; power(1,1)=16; power(2,1)=3;power(2,2)=6; power(3,1)=2*2.5;power(3,2)=5*8.52;power(3,1)=5; power(4,1)=25;power(4,2)=4; power(5,1)=7*5.4;power(5,2)=20; power(6,1)=5; power(7,1)=3*41.5;power(7,2)=3.7;power(7,3)=2*35.6;power(7,4)=2*2.14;power(7,5)=5*3.24;power(7,6)=3*40;power(7,7)=8*6.32;power(7,8)=8; power(8,1)=2*16; power(9,1)=3*30;power(9,2)=42.5; cos(1,1)=0.85; cos(2,1)=0.95;cos(2,2)=0.95; cos(3,1)=0.82;cos(3,2)=0.84;cos(3,1)=1; cos(4,1)=0.85;cos(4,2)=0.8; cos(5,1)=0.88;cos(5,2)=0.9; cos(6,2)=0.99; cos(7,1)=0.84;cos(7,2)=0.82;cos(7,3)=0.86;cos(7,4)=0.85;cos(7,5)=0.86;cos(7,6)=0.88;cos(7,7)=0.83;cos(7,8)=0.9; cos(8,2)=0.88; cos(9,1)=0.87;cos(9,2)=0.8; rnd=unifrnd(0,1,[1 1000]); powersum=zeros(1,1000); m=1; for i=1:1000 for j=1:9 if pspace(j)<=rnd(i)<pspace(j+1) pspaceint=j+1; for n=2:10 if n==pspaceint powersum(1,m)=powersum(1,m)+power(n-1,1); zz=unifrnd(0,1,[1 7]); for z=1:7 if zz(z)<pspace(j+1) powersum(1,m)=powersum(1,m)+power(n-1,z+1); end end else if n>pspaceint for g=1:8 powersum(1,m)=powersum(1,m)+power(n-1,g); end end end end end end m=m+1; end 这是改完的,在m文件无法运行,提示??? Error: "power" was previously used as a variable,conflicting with its use here as the name of a function.,在命令运行窗口可以,这是为啥?程序里 m=m+1;前一定得多个end 不知道为什么?调出powersum的结果看了,程序有问题。 |
回复: 算法哪里出错呢?
[COLOR="Red"]else if n>pspaceint[/COLOR]
这里你又引入了一个if,所以要跟着一个end |
所有时间均为北京时间。现在的时间是 08:19。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.