www.pudn.com > LBG_GA.rar > initialpop.m, change:2011-05-27,size:1445b


function initialp=intialpop(x,n) 
 
%种群初始化,其中x为LBG生成的码本,y为特征矢量,n为初始种群的大小 
% x=rand(32,12);y=rand(318,12);n=50; 
M=size(x,1); 
W=size(x,2); 
 
temp=zeros(1,M*W); 
tempindiv=zeros(M,W); 
initialp=zeros(n,M*W); 
tep=zeros(1,W); 
for i=1:n 
    for j=1:5 
    l=round(rand(1)*M+0.5); 
    s=round(rand(1)*M+0.5); 
    tep=x(s,:); 
    x(s,:)=x(l,:); 
    x(l,:)=tep; 
    end 
    tempindiv=x; 
    for k=1:M 
        for t=1:W 
            temp((k-1)*W+t)=tempindiv(k,t); 
        end 
    end 
    initialp(i,:)=temp; 
end 
     
 
 
% function  initialp=initialpop(X,n,r) 
% %初始化X为提取的特征参数 
% %n为种群的大小(n=50) 
% %r为每个个体中的码字(r=32) 
% % X=randn(12,318); 
% %  
% % pop=zeros(160,10); 
% % s=255; 
% % popsize=10; 
% % for i=1:160 
% % popi_init = randperm(s); 
% % pop(i,:) = popi_init(1:popsize); 
% % end 
% % X=pop; 
% % n=50;r=32; 
%  
% N=size(X,2);%码字的个数 
% M=size(X,1);%码字的维数 
% tempindiv=zeros(r,M); 
% initialp=zeros(n,r*M); 
% temp=zeros(1,r*M);%temp=zeros(50,32*12) 
%  
% for i=1:n 
%    for j=1:r  
%        randshu=abs(round((random('unif',0,1)-0.5)*2*N));%产生一个1~318的整数 
%        if randshu~=0          
%        tempindiv(j,:)=X(:,randshu); 
%    end 
%    for k=1:r 
%        for l=1:M 
%        temp((k-1)*M+l)=tempindiv(k,l); %将取出的矩阵32*12转化为一行1*384的 
%        end 
%    end 
%    initialp(i,:)=temp; 
%    end 
% end 
% end