24小时热门版块排行榜    

查看: 2146  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 一生快乐 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 307求调剂 +3 wyyyqx 2026-03-17 3/150 2026-03-21 03:20 by JourneyLucky
[考研] 材料工程(专)一志愿985 初试335求调剂 +3 hiloiy 2026-03-17 4/200 2026-03-21 03:04 by JourneyLucky
[考研] 328求调剂,英语六级551,有科研经历 +4 生物工程调剂 2026-03-17 8/400 2026-03-21 02:12 by JourneyLucky
[考研] 317求调剂 +8 申子申申 2026-03-19 13/650 2026-03-21 00:09 by 刘国森
[考研] 南昌大学材料专硕311分求调剂 +5 77chaselx 2026-03-20 5/250 2026-03-20 23:42 by lovewei0727
[考研] 一志愿武汉理工材料工程专硕调剂 +9 Doleres 2026-03-19 9/450 2026-03-20 22:36 by JourneyLucky
[考研] 一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。 +4 晨昏线与星海 2026-03-19 4/200 2026-03-20 22:15 by JourneyLucky
[考研] 北科281学硕材料求调剂 +5 tcxiaoxx 2026-03-20 5/250 2026-03-20 21:35 by laoshidan
[考研] 求调剂一志愿南京航空航天大学289分 +3 @taotao 2026-03-19 3/150 2026-03-20 21:34 by JourneyLucky
[考研] 319求调剂 +3 小力气珂珂 2026-03-20 3/150 2026-03-20 19:47 by JourneyLucky
[考研] 环境工程调剂 +9 大可digkids 2026-03-16 9/450 2026-03-20 17:38 by 醉在风里
[考研] 298-一志愿中国农业大学-求调剂 +9 手机用户 2026-03-17 9/450 2026-03-20 14:24 by 无懈可击111
[考研] 一志愿西安交通大学材料工程专业 282分求调剂 +5 枫桥ZL 2026-03-18 7/350 2026-03-19 14:52 by 功夫疯狂
[考研] 286求调剂 +6 lemonzzn 2026-03-16 10/500 2026-03-19 14:31 by lemonzzn
[考研] 一志愿福大288有机化学,求调剂 +3 小木虫200408204 2026-03-18 3/150 2026-03-19 13:31 by houyaoxu
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
[考研] 有没有道铁/土木的想调剂南林,给自己招师弟中~ +3 TqlXswl 2026-03-16 7/350 2026-03-17 15:23 by TqlXswl
[考研] 297一志愿上交085600求调剂 +5 指尖八千里 2026-03-14 5/250 2026-03-14 17:26 by a不易
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
信息提示
请填处理意见