czk2743
2009-09-07, 16:47
做一个可靠性的仿真,代码如下:
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的结果看了,程序有问题。
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的结果看了,程序有问题。