Matlab 报错:位置 2 处的索引无效。数组索引必须为正整数或逻辑值。
在使用fminsearch函数时,迭代20余步后报错,显示:
问题相关代码,请勿粘贴截图
相关代码:
待拟合参数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
运行结果及报错内容
运行显示我的索引值非整数或索引值,但是很明显我已经做过正整数化处理了