Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-09-07, 16:47   #1
czk2743
初级会员
 
注册日期: 2009-09-07
帖子: 1
声望力: 0
czk2743 正向着好的方向发展
默认 算法哪里出错呢?

做一个可靠性的仿真,代码如下:

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的结果看了,程序有问题。
czk2743 当前离线   回复时引用此帖
旧 2009-09-11, 13:30   #2
barcelona
初级会员
 
注册日期: 2009-08-28
年龄: 45
帖子: 14
声望力: 16
barcelona 正向着好的方向发展
默认 回复: 算法哪里出错呢?

else if n>pspaceint

这里你又引入了一个if,所以要跟着一个end
barcelona 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 06:02


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.