gusucode.com > 利用遗传算法进行图像分割matlab源码程序 > segment_ga/select1.m

    function s1=select1(X1,adapt_value1)
    
    %选择算子
    
    population=10;
    
    total_adapt_value1=0;
    for i=1:population
        total_adapt_value1=total_adapt_value1+adapt_value1(i);
    end
    adapt_value1_new=adapt_value1/total_adapt_value1;
    
    max_adapt_value1=max(adapt_value1);                               % 10%精英策略
    s1(1)=round(mean(X1(find(adapt_value1==max_adapt_value1))));
        
    r=rand(1,population-1);
    
    for i=2:population                                                % 90%轮盘赌法
        temp=0;
        for j=1:population
            temp=temp+adapt_value1_new(j);
            if temp>=r(i-1)
                s1(i)=X1(j);
                break;
            end
        end
    end