错误使用nlinfit(line211)

发布时间:2019-07-29 23:18:43

close all;

x=[-67,0,58; 67,0,58;0,-43,52;0,43,52;0,0,74];

x1=x(:,1);

x2=x(:,2);

x3=x(:,3);

y=[0.024940549 0.024940549 0.021165329 0.021165329 0.022330343];

f=@(a,x) (((x(1)-a(1)).^2+(x(2)-a(2)).^2+(x(3)-a(2)).^2).^(0.5))/((5600.^2+a(4).^2-11200.*a(4).*((x(1).*a(1)+x(2).*a(2)+x(3).*a(3).^2)/(a(1).^2+a(2).^2+a(3).^2).^(0.5).*x(1).^2+x(2).^2+x(3).^2).^(0.5)).^(0.5))+a(5);

a=[0 0 0 3800 0 ]';

[a,r,j] = nlinfit(x,y',f,a);


推荐回答

nlinfit()函数错误使用,这是一个比较常见使用错误。解决的方法:1、使用时,应把变量 L、T看成 x 向量组。即x=[ L T]2、自定义函数应写成func=inline('cos(beta(1))*sqrt(x(:,1)^2+beta(2)^2)-sin((x(:,2)-28.421)*15*pi/180)','beta','x');3、nlinfit()函数应写成beta=nlinfit(x,y,func,[0 0]);

以上问题属网友观点,不代表本站立场,仅供参考!