声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 962|回复: 2

[综合讨论] 遗传算法创建三维的初始种群

[复制链接]
发表于 2008-12-16 22:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
a=[1 2 3 ; 4 5 6 ; 7 8 9 ; 10 11 12];
b=[1 2 3];
qS=[1 1.2 2.4];
for k=1 :4
    for i=1 : 5
        for j=1 :3
            tKS(k,:,:)=rep(a(k,:)-b,[5,1]);
            aJS(k,:,:)=rep(a(k,:),[5,1]);
            if i<tKS(k,i,j)
                f(k,i,j)=0;
            elseif i>aJS(k,i,j)
                f(k,i,j)=0;
            else
                f(k,i,j)=1;            
            end  
            m(k,i,j)=f(k,i,j)*qS(j);
        end      
    end
end
这个算法在MATLAB中运行结果是正确的,但是
tG=[1 3 13 2 4 6 15 11 4];                        
Chrom=crtbp(20,9*5);               
FieldD=[rep([5],[1,9]);rep([1;16],[1,9]);rep([1;0;1;1],[1,9])];
t=bs2rv(Chrom,FieldD);                        
for k=1 : 20  
    for i=1 : 5                              
        for j=1 : 9                        
            tKS(k,:,:)=rep(t(k,:)-tG,[5,1]);
            tJS(k,:,:)=rep(t(k,:),[5,1]);   
            if i<tKS(k,i,j)                    
               f(k,i,j)=0;
            elseif i>tJS(k,i,j)               
               f(k,i.j)=0;
            else
               f(k,i,j)=1;                    
            end           
        end                     
    end     
end
在运行时就会出现??? Attempt to reference field of non-structure array.
其中第二个程序中t就是第一个程序中的a,只不过是用遗传算法生成的一个二维实数数组。而且在执行第二个程序for循环之前的语句是正确的,就是不知道为什么将先用遗传算法算创建初始的二维数组后,再用for循环就会出错。
在两个程序中f是个状态变量,在tKS和tJS之间取1,其他取0.
这个程序折磨了我好久,期盼高手相助啊!
回复
分享到:

使用道具 举报

 楼主| 发表于 2008-12-21 20:11 | 显示全部楼层
请大家帮忙解决一下啊,我实在是找不出错误了
发表于 2008-12-21 20:42 | 显示全部楼层
循环真多
有没有详细点的错误提示
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-4 11:40 , Processed in 0.050113 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表