24小时热门版块排行榜    

查看: 2145  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 一生快乐 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料 336 求调剂 +3 An@. 2026-03-18 4/200 2026-03-21 01:39 by JourneyLucky
[考研] 324分 085600材料化工求调剂 +4 llllkkkhh 2026-03-18 4/200 2026-03-21 01:24 by JourneyLucky
[考研] 271材料工程求调剂 +8 .6lL 2026-03-18 8/400 2026-03-21 00:58 by JourneyLucky
[考研] 22408 344分 求调剂 一志愿 华电计算机技术 +4 solanXXX 2026-03-20 4/200 2026-03-20 23:49 by alg094825
[考研] 一志愿南昌大学,327分,材料与化工085600 +9 Ncdx123456 2026-03-19 9/450 2026-03-20 23:41 by lovewei0727
[考研] 330求调剂 +4 小材化本科 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[考研] 药学383 求调剂 +3 药学chy 2026-03-15 5/250 2026-03-20 22:11 by 云游重阳
[考研] 一志愿西安交通大学 学硕 354求调剂 +3 我想要读研究生 2026-03-20 3/150 2026-03-20 20:13 by JourneyLucky
[考研] 求调剂 +3 暗涌afhb 2026-03-16 3/150 2026-03-20 00:28 by 河南大学校友
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 复试调剂 +4 z1z2z3879 2026-03-14 6/300 2026-03-19 17:18 by fei626-918
[考研] 材料与化工求调剂 +7 为学666 2026-03-16 7/350 2026-03-19 14:48 by 尽舜尧1
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 0703化学336分求调剂 +6 zbzihdhd 2026-03-15 7/350 2026-03-18 09:53 by zhukairuo
[考研] 275求调剂 +4 太阳花天天开心 2026-03-16 4/200 2026-03-17 10:53 by 功夫疯狂
[考研] 11408 一志愿西电,277分求调剂 +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[考研] 277材料科学与工程080500求调剂 +3 自由煎饼果子 2026-03-16 3/150 2026-03-16 14:10 by 运气yunqi
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 复试调剂 +3 呼呼?~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
信息提示
请填处理意见