24小时热门版块排行榜    

查看: 2118  |  回复: 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 %min(ObjV)>250
    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朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖


jjdg(金币+1): 感谢支持 2011-10-16 23:37:20
Undefined function or method 'crtrp' for input arguments of type 'double'.
crtrp函数未定义

Input argument "w" is undefined.
函数定义是function f=objfun_1(w),必须有参数调用,objfun_1()这样不行的
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
2楼2011-10-16 00:32:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一生快乐

新虫 (初入文坛)

我的这个程序就是调用的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 %min(ObjV)>250
    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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wolfqfy

金虫 (正式写手)

【答案】应助回帖

jjdg: 建议直接给出答案,而不是其他论坛的链接 2011-10-16 23:37:58
白日放歌须纵酒,青春作伴好还乡。
4楼2011-10-16 09:06:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

一生快乐

新虫 (初入文坛)

送鲜花一朵
谢谢了!现在不是crtrp的问题了,运行完显示的是下面的错误
??? Subscript indices must either be real positive integers or logicals.

Error in ==> yichuansuanfa at 8
A=Chrom(i,j);
如果去掉A=Chrom(i,j);到
gen=0上一行的end这一段循环就可以运行了,可是结果不准确
5楼2011-10-17 17:03:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wz1991

新虫 (初入文坛)

怎样定义crtrp函数?
6楼2012-05-01 01:27:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 一生快乐 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +3 5lbyq5wrhb 2026-02-07 4/200 2026-02-08 08:47 by vs90ilomwc
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +3 5lbyq5wrhb 2026-02-07 4/200 2026-02-08 08:46 by vs90ilomwc
[论文投稿] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +3 3rkserf6qr 2026-02-07 5/250 2026-02-08 08:32 by vs90ilomwc
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +5 2h7du0nuhk 2026-02-07 6/300 2026-02-08 08:26 by vs90ilomwc
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +5 2h7du0nuhk 2026-02-07 6/300 2026-02-08 08:12 by vs90ilomwc
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 6/300 2026-02-08 08:07 by vs90ilomwc
[教师之家] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 7/350 2026-02-08 07:52 by vs90ilomwc
[找工作] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 7/350 2026-02-08 07:46 by vs90ilomwc
[公派出国] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 8/400 2026-02-08 07:32 by vs90ilomwc
[考博] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 8/400 2026-02-08 07:27 by vs90ilomwc
[教师之家] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 8/400 2026-02-08 07:26 by vs90ilomwc
[硕博家园] 售SCI一区文章,我:8 O5 51O 54,科目齐全 +4 2h7du0nuhk 2026-02-07 8/400 2026-02-08 07:07 by vs90ilomwc
[硕博家园] 博士延得我,科研能力直往上蹿 +8 偏振片 2026-02-02 8/400 2026-02-08 06:52 by liyeqik
[教师之家] 有院领导为了换新车,用横向课题经费买了俩车 +7 瞬息宇宙 2026-02-04 7/350 2026-02-07 21:47 by tfang
[有机交流] 酰胺脱乙酰基 10+5 chibby 2026-02-03 12/600 2026-02-07 19:29 by 江东闲人
[基金申请] 同年申请2项不同项目,第1个项目里不写第2个项目的信息,可以吗 +4 hitsdu 2026-02-06 4/200 2026-02-07 13:07 by jurkat.1640
[基金申请] 有时候真觉得大城市人没有县城人甚至个体户幸福 +9 苏东坡二世 2026-02-04 10/500 2026-02-07 12:37 by 小毛球
[考博] 天津大学招2026.09的博士生,欢迎大家推荐交流(博导是本人) +4 a793625982 2026-02-05 5/250 2026-02-07 10:57 by a793625982
[公派出国] CSC & MSCA 博洛尼亚大学能源材料课题组博士/博士后招生|MSCA经费充足、排名优 +4 雨念 2026-02-01 6/300 2026-02-06 23:32 by MelissaPon
[基金申请] 面上项目申报 +3 Tide man 2026-02-01 3/150 2026-02-05 22:56 by god_tian
信息提示
请填处理意见