绿愧高柳 2023-05-26 20:17 采纳率: 0%
浏览 101
已结题

位置1处的索引超出数组边界。索引不能超过14。

位置1处的索引超出数组边界,索引不能超过14,请问怎么改正啊?

img

  • 写回答

6条回答 默认 最新

  • 绿愧高柳 2023-05-27 00:10
    关注
    清空环境
    clc
    clear
    
    初始位置分布
    %城市坐标
    X = [102.13 31.55
        104.63 28.76
        102.22 31.89
        101.96 30.05
        105.82 32.43
        102.25 27.88
        105.06 29.58
        104.74 31.46
        104.06 30.65
        103.76 29.55
        105.44 28.88
        104.39 31.12
        103.00 29.98
        103.83 30.04];
    DQ=[12 81 29 47 11 18 11 24 5 11 15 2 18 1];
    figure(1)
    plot(X(:,1),X(:,2),'o','LineWidth',2,...
        'MarkerEdgeColor','k',...
        'MarkerFaceColor','g',...
        'MarkerSize',10)
    title('初始受灾点分布图','fontsize',12)
    xlabel('经度','fontsize',12)
    ylabel('纬度','fontsize',12)
    
    
    算法基本参数
    sizepop=50;           % 种群规模
    overbest=10;          % 记忆库容量
    MAXGEN=100;            % 迭代次数
    pcross=0.5;           % 交叉概率
    pmutation=0.4;        % 变异概率
    ps=0.95;              % 多样性评价参数
    length=3;             % 配送中心数
    M=sizepop+overbest;
    
    step1 识别抗原,将种群信息定义为一个结构体
    individuals = struct('fitness',zeros(1,M), 'concentration',zeros(1,M),'excellence',zeros(1,M),'chrom',[]);
    
    step2 产生初始抗体群
    individuals.chrom = popinit(M,length);
    trace=[]; %记录每代最个体优适应度和平均适应度
    
    迭代寻优
    for iii=1:MAXGEN
    
    step3 抗体群多样性评价
         for i=1:M
             individuals.fitness(i) = fitness(individuals.chrom(i,:));      % 抗体与抗原亲和度(适应度值)计算
             individuals.concentration(i) = concentration(i,M,individuals); % 抗体浓度计算
         end
         % 综合亲和度和浓度评价抗体优秀程度,得出繁殖概率
         individuals.excellence = excellence(individuals,M,ps);
              
         % 记录当代最佳个体和种群平均适应度
         [best,index] = min(individuals.fitness);   % 找出最优适应度 
         bestchrom = individuals.chrom(index,:);    % 找出最优个体
         average = mean(individuals.fitness);       % 计算平均适应度
         trace = [trace;best,average];              % 记录
    
    step4 根据excellence,形成父代群,更新记忆库(加入精英保留策略,可由s控制)
         bestindividuals = bestselect(individuals,M,overbest);   % 更新记忆库
         individuals = bestselect(individuals,M,sizepop);        % 形成父代群
    
    step5 选择,交叉,变异操作,再加入记忆库中抗体,产生新种群
         individuals = Select(individuals,sizepop);                                                             % 选择
         individuals.chrom = Cross(pcross,individuals.chrom,sizepop,length);                                    % 交叉
         individuals.chrom = Mutation(pmutation,individuals.chrom,sizepop,length);   % 变异
         individuals = incorporate(individuals,sizepop,bestindividuals,overbest);                               % 加入记忆库中抗体      
    
    end
    
    画出免疫算法收敛曲线
    figure(2)
    plot(trace(:,1));
    hold on
    plot(trace(:,2),'--');
    legend('最优适应度值','平均适应度值')
    title('免疫算法收敛曲线','fontsize',12)
    xlabel('迭代次数','fontsize',12)
    ylabel('适应度值','fontsize',12)
    
    画出配送中心选址图
    % 计算 X 的行数
    n = size(X, 1);  
    % 找出最近配送点
    for i = 1:n  
        distance(i, :) = dist(X(i, :), X(bestchrom, :)');
    end
    
    [a,b]=min(distance');
    
    index = cell(1, n);  
    for i = 1:n  
        % 计算各个派送点的地址
        index{i} = find(b == i); 
    end
    figure(3)
    title('最优规划派送路线')
    cargox=X(bestchrom,1);
    cargoy=X(bestchrom,2);
    plot(cargox,cargoy,'rs','LineWidth',2,...
        'MarkerEdgeColor','r',...
        'MarkerFaceColor','b',...
        'MarkerSize',20)
    hold on
    
    plot(X(:,1),X(:,2),'o','LineWidth',2,...
        'MarkerEdgeColor','k',...
        'MarkerFaceColor','g',...
        'MarkerSize',10)
    
    for i=1:n
        x=[X(i,1),X(bestchrom(b(i)),1)];
        y=[X(i,2),X(bestchrom(b(i)),2)];
        plot(x,y,'c');hold on
    end
    
    评论

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 修改了问题 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)