| 查看: 2088 | 回复: 5 | ||
[求助]
matlab程序运行总是出现下面的错误,请各位高手指点一下,谢谢了!急 急急
|
|
NIND=40; %个体数目 MAXGEN=500; %最大遗传代数 NVAR=7; %变量个数 GGAP=0.8; %代沟 %创建区域描述器 FielDR=[0.01,0.01,0.01,0.01,0.01,0.01,0.01;0.9,0.9,0.9,0.9,0.9,0.9,0.9] Chrom=crtrp(NIND,FielDR)%创建初始种群 A=Chrom(i,j); for j=1:40; sum(j)=0; for m=1:7; sum(j)=A(j,m)+sum(j); end; end for j=1:40 for i=1:7 Chrom(i,j)=A(i,j)/sun(j); end end; gen=0; %代计数器 ObjV=objfun_1(Chrom) %计算初始种群个体的目标函数值 while gen FitnV=ranking(ObjV) %分配适应度值 SelCh=select('sus',Chrom,FitnV,GGAP) %选择(随即遍历抽样) SelCh=recombin('xovsp',SelCh,0.7) %重组(单点交叉) SelCh=mutbga(SelCh,FielDR) %变异 ObjVSel=objfun_1(SelCh) %子代函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel) %重插入 gen=gen+1; [Y,I]=min(ObjV); %最优解,种群序号 Y w=(Chrom(I, ) %输出自变量值end w 该段程序 运行错误显示 Undefined function or method 'crtrp' for input arguments of type 'double'. function f=objfun_1(w) R51=[7.5 0.15 3.0 0.002 1.0 0.010 0.1 12.80 0.13 0.65 2.73 3.60 0.07 2.92 11.20 0.27 0.5 0.68 5.70 0.09 0.98 13.20 0.44 0.3 2.18 5.30 0.08 2.78 9.90 0.20 0.5 1.09 5.40 0.06 3.04 11.70 0.31 0.35 0.55 5.70 0.15 3.57 9.00 0.27 0.35 1.37 7.30 0.09 1.41 10.70 0.43 0.35 3.82 7.40 0.14 2.70 8.70 0.27 0.3 2.05 6.20 0.10 2.69 11.60 0.47 0.2 1.91 9.50 0.22 2.21 9.70 0.28 0.35 4.50 9.80 0.17 1.81 9.90 0.39 0.3 3.69 7.60 0.18 2.23 6.80 0.60 0.3 4.91 9.60 0.27 1.36 6.00 0.35 0.65 7.10 11.80 0.16 1.40 6.70 0.63 0.5 4.37 9.80 0.30 1.62 14.00 1.55 0.5 9.56 8.30 0.22 2.99 9.00 0.73 0.6 1.09 9.60 0.21 2.67 10.90 0.50 0.65 12.01 9.20 0.28 2.02 10.90 0.55 0.35 5.19 6.00 0.16 1.72 8.10 0.78 0.5 8.19 8.90 0.22 2.12 14.90 0.55 0.5 8.46 10.80 0.19 2.27 11.30 0.24 0.35 5.46 6.60 0.15 1.01 12.50 0.90 0.5 1.75 5.70 0.10 3.19 9.60 0.49 0.35 3.28 8.00 0.14 1.85 11.20 0.68 0.65 7.50 8.20 0.18 2.27]; A1=R51 sizes=size(A1)%统计行列数 row=sizes(1); col=sizes(2); [aa,b]=size(w); %决策矩阵规范化 sum=0; for j=1:7; for m=1:25; a=A1(m,j)*A1(m,j); sum=a+sum; end; b=sqrt(sum); for i=1:25 R1(i,j)=A1(i,j)/b; end; end; %运用目标函数法确定权重系数 sumx=0; x1(1:col)=0; for mm=1:aa; sum=0; for j=1:col for i=2:row xa(j)=(R1(i,j)-R1(1,j))^2; %每列中的每个元素与第一个元素的差取平方,即目标函数 x1(j)=x1(j)+xa(j);% end sumx(j)=x1(j)*w(m,j)*w(m,j);%目标函数之和 sum=sum+sumx(j); end f(mm,1)=sum end 这段程序运行错误显示??? Input argument "w" is undefined. |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
论文终于录用啦!满足毕业条件了
已经有17人回复
不自信的我
已经有5人回复
磺酰氟产物,毕不了业了!
已经有4人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
matlab 求指点 动力学方程拟合过程中导数的获取
已经有10人回复
求助一简单matlab程序的出错问题,谢谢
已经有3人回复
请高手指点一下,一个加氢键精修的问题,软件加氢键后运行不了
已经有15人回复
采用matlab中nlinfit拟合,出现问题了,不知道是哪错了,该怎么解决,求高手指点一下
已经有9人回复
同样的MATLAB程序,为何在别人的电脑上运行不了
已经有21人回复
利用origin 拟合曲线求参数,程序老出现错误,急死了,求各位高手指点!
已经有7人回复
matlab中运行提示出错,请求高手指点
已经有8人回复
【求助】请高手指点一下vc++的一部分程序,看看哪有错误,急急。。。。。。。。。。
已经有6人回复
【求助】用matlab编程,需要将数据自检分类(高手进来指点下)
已经有5人回复
【求助】请教一个matlab程序,谢谢帮忙!!
已经有15人回复
【求助】matlab程序运行出错,是怎么回事啊【已完结】
已经有6人回复
libralibra
至尊木虫 (著名写手)
骠骑将军
- 程序强帖: 40
- 应助: 817 (博后)
- 金币: 12914.1
- 红花: 64
- 帖子: 2238
- 在线: 287.3小时
- 虫号: 696514
- 注册: 2009-02-05
- 专业: 计算机软件

2楼2011-10-16 00:32:22
|
我的这个程序就是调用的objfun_1(w)那个程序 现在的问题就是想让w之和为1,也就是从A=Chrom(i,j);到 gen=0; 上一行的end这一段循环使得chrom里每行的7个数之和为1,共40行 NIND=40; %个体数目 MAXGEN=500; %最大遗传代数 NVAR=7; %变量个数 GGAP=0.8; %代沟 %创建区域描器 FielDR=[0.01,0.01,0.01,0.01,0.01,0.01,0.01;0.9,0.9,0.9,0.9,0.9,0.9,0.9] Chrom=crtrp(NIND,FielDR);%创建初始种群 A=Chrom(i,j); for j=1:40; sum(j)=0; for m=1:7; sum(j)=A(j,m)+sum(j); end; end for j=1:40 for i=1:7 Chrom(i,j)=A(i,j)/sum(j); end end; gen=0; %代计数器 ObjV=objfun_1(Chrom); %计算初始种群个体的目标函数值 while gen FitnV=ranking(ObjV); %分配适应度值 SelCh=select('sus',Chrom,FitnV,GGAP); %选择(随即遍历抽样) SelCh=recombin('xovsp',SelCh,0.7); %重组(单点交叉) SelCh=mutbga(SelCh,FielDR); %变异 ObjVSel=objfun_1(SelCh); %子代函数值 [Chrom ObjV]=reins(Chrom,SelCh,1,1,ObjV,ObjVSel); %重插入 gen=gen+1; [Y,I]=min(ObjV); %最优解,种群序号 Y w=(Chrom(I, ) %输出自变量值end w ??? Subscript indices must either be real positive integers or logicals. Error in ==> yichuansuanfa at 8 A=Chrom(i,j); |
3楼2011-10-16 09:03:09
【答案】应助回帖
jjdg: 建议直接给出答案,而不是其他论坛的链接 2011-10-16 23:37:58

4楼2011-10-16 09:06:28
5楼2011-10-17 17:03:07
6楼2012-05-01 01:27:16







) %输出自变量值
回复此楼
一生快乐