请叫我李青大人 2022-06-05 14:44
浏览 27
已结题

天牛须算法-索引超出数组元素的数目(1)。

问题遇到的现象和发生背景

天牛须算法-索引超出数组元素的数目(1)。

问题相关代码,请勿粘贴截图
function bas()
    clear all;
    % 初始化部分
    eta=0.95;%步长衰减因子
    c=5;% 步进和d0之间的比率
    step=1;% 初始步骤设置为最大输入范围
    n=100;% 迭代次数
    k=2;% 空间维数
    x=rands(1,k);% 初始化天牛须位置
    fbest=fit(x);% 初始化最优适应度
    A=zeros(100,1);
    B=zeros(100,1);
    record=zeros(n,1);
%     fbest_store=fbest;
%     x_store=[0;x;fbest];% 用于存储路径
%     display(['0:','xbest=[',num2str(xbest'),'],fbest=',num2str(fbest)]);
    % 迭代部分
    for i=1:n
        d0=step/c;% d0表示质点与须之间的长度
        dir=rands(1,k); % 随机方向向量
        dir=dir/(eps+norm(dir));% 归一化
        xleft=x+dir*d0;% 左须
        fleft=fit(xleft);
        xright=x-dir*d0;% 右须
        fright=fit(xright);
        x=x-step.*dir.*sign(fleft-fright);% 判优
        f=fit(x);
        if f<fbest
            
            f=fbest;
            x=x(i);
        elseif f>fbest
            f=fbest;
            x=x(i); 
        end
       record(i)=fbest;
       r=x(i,:);
       for j=1:i
       A(i,j)=sqrt(r(2*j)^2 + r(2*j-1)^2);
       P(i,j)=atan(r(2*j-1)/r(2*j));
       end
    end
%     % 数据显示部分
%     figure(1),clf(1);
%     plot(x_store(1,:),x_store(end,:),'r-o');
%     hold on;
%     plot(x_store(1,:),fbest_store,'b-.');
%     xlabel('iteration');
%     ylabel('maximum value');
 end

function y=fit(x)
t=0.01;
H=[sin(2*pi*t) cos(2*pi*t)];
Q=[2*cos(2) 2*sin(2)];
V=H*Q';
y=sum((V-H*x').^2);
end

运行结果及报错内容
>> sbas
索引超出数组元素的数目(1)。

出错 sbas (line 39)
       A(i,j)=sqrt(r(2*j)^2 + r(2*j-1)^2);

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 6月13日
    • 创建了问题 6月5日

    悬赏问题

    • ¥15 mmo能不能做客户端怪物
    • ¥15 osm下载到arcgis出错
    • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
    • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
    • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
    • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
    • ¥15 QQ邮箱过期怎么恢复?
    • ¥15 登录他人的vue项目显示服务器错误
    • ¥15 (标签-android|关键词-app)
    • ¥15 comsol仿真压阻传感器