24小时热门版块排行榜    

查看: 2135  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 一生快乐 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 317一志愿华南理工电气工程求调剂 +4 Soliloquy_Q 2026-02-28 5/250 2026-02-28 22:49 by 布什戈们
[考研] 化工专硕348,一志愿985求调剂 +4 弗格个 2026-02-28 6/300 2026-02-28 22:00 by wang_dand
[考研] 290求调剂 +5 材料专硕调剂; 2026-02-28 6/300 2026-02-28 21:40 by gaoxiaoniuma
[考博] 26申博 +4 想申博! 2026-02-26 4/200 2026-02-28 21:37 by limorning
[考研] 求调剂 +4 repeatt?t 2026-02-28 4/200 2026-02-28 21:16 by gaoxiaoniuma
[考研] 284求调剂 +4 天下熯 2026-02-28 4/200 2026-02-28 21:13 by gaoxiaoniuma
[考研] 高分子化学与物理调剂 +4 好好好1233 2026-02-28 7/350 2026-02-28 20:42 by 好好好1233
[考研] 085600材料工程一志愿中科大总分312求调剂 +8 吃宵夜1 2026-02-28 10/500 2026-02-28 20:27 by L135790
[考研] 298求调剂 +8 人间唯你是清欢 2026-02-28 11/550 2026-02-28 20:26 by L135790
[基金申请] 面上模板改不了页边距吧? +5 ieewxg 2026-02-25 5/250 2026-02-28 20:11 by iwuli
[考研] 0856材料求调剂 +10 hyf hyf hyf 2026-02-28 11/550 2026-02-28 18:50 by 无际的草原
[教师之家] 版面费该交吗 +15 苹果在哪里 2026-02-22 18/900 2026-02-28 18:20 by mibaomingg
[考研] 285求调剂 +5 满头大汗的学生 2026-02-28 5/250 2026-02-28 18:10 by 材料专硕调剂;
[考研] 材料调剂 +3 爱擦汗的可乐冰 2026-02-28 3/150 2026-02-28 18:06 by houyaoxu
[高分子] 求环氧树脂研发1名 +3 孙xc 2026-02-25 11/550 2026-02-28 16:57 by ichall
[考研] 265分求调剂不调专业和学校有行学上就 +4 礼堂丁真258 2026-02-28 6/300 2026-02-28 16:18 by 求调剂zz
[考研] 寻找调剂 +3 LYidhsjabdj 2026-02-28 3/150 2026-02-28 12:59 by miniwendy
[硕博家园] 博士自荐 +6 科研狗111 2026-02-26 9/450 2026-02-28 12:32 by seaskyy
[考研] 272求调剂 +3 田智友 2026-02-28 3/150 2026-02-28 12:31 by 王加浩to
[考研] 298求调剂 +4 axyz3 2026-02-28 4/200 2026-02-28 11:21 by wang_dand
信息提示
请填处理意见