吃口罩的防护服 2022-08-06 13:44 采纳率: 0%
浏览 43
已结题

Matlab之fminsearch参数优化,运行报错

Matlab 报错:位置 2 处的索引无效。数组索引必须为正整数或逻辑值。
在使用fminsearch函数时,迭代20余步后报错,显示:

img

问题相关代码,请勿粘贴截图
相关代码:
待拟合参数D与Alpha:
D=1;
A=[0.000093,0.001,0.0001,0.00001,0.000001,0.0000001,0.00000001];

options=optimset('fminsearch');
options.TolX=0.001;
options.Display='iter';
[q,fval,exitflag,output]=fminsearch(@del_def,[D,A],options,t,y,y2,r,a,l,z,Cn,gd,gd2,md,ng,bh,cita,dy,dt,path);

报错位置(del_def函数内)代码:

      for J=1:M2
        if J==1
            Yp(1,kk)=(gd-gd2)-X(kk)*tan(cita);
            n1=n(T,floor(abs(floor(abs(Yp(1,kk))*M/(gd))+1)));
        elseif floor(abs(floor(abs(Yp(J,kk))*M/gd)+1))>(M+1)
            Yp(:,kk)=0;
            J=M2;
        else
            _nx=n(T,floor(abs(floor(abs(Yp(J,kk))*M/(gd))+1)));_
            if n1<=sqrt(sin(cita)^2*k0(kk)^2+1)
                Yp(:,kk)=0;
                J=M2;
            else
                Yp(J+1,kk)=Yp(J,kk)+dy*sqrt(nx^2/(n1^2-k0(kk)^2*sin(cita)^2)-1);
            end
        end
    end

运行结果及报错内容
运行显示我的索引值非整数或索引值,但是很明显我已经做过正整数化处理了

  • 写回答

4条回答 默认 最新

  • 来灵 2022-08-06 17:15
    关注

    把索引值打印出来看下,看看是不是正整数。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月9日
  • 修改了问题 8月6日
  • 创建了问题 8月6日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题