作业帮 > 综合 > 作业

matlab lsqcurvefit拟合问题

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/12 16:49:20
matlab lsqcurvefit拟合问题
我自己定义的函数是
function [ F ] = myfun4( x,xdata )
xdata=[x(1),-x(2);x(2),x(1)]*xdata;
xdata=xdata+[x(3),x(4)];
xdata(:,1) = xdata(:,1)+x(3);
xdata(:,2) = xdata(:,2)+x(4);
F=xdata;
end
主函数中引用为
x = lsqcurvefit(@myfun4,[1 2 3 4],xdata,ydata);
运行后提示为:Error using ==> mtimes
Inner matrix dimensions must agree.
我分步运行了,不存在矩阵不匹配啊!
求科普,是不是我的自定义函数有问题啊,xdata=[x(1),-x(2);x(2),x(1)]*xdata;他不能处理这个乘法么~
我做的是运动估计中的四参数模型.
matlab lsqcurvefit拟合问题
你的function里面有矩阵的乘法,需要加“.”,点乘
再问: .*不是对应位置相乘吗,而且要求矩阵维数相同啊
再答: 你的xdata是两行的吗 xdata=[x(1),-x(2);x(2),x(1)]*xdata; 这个代码之后xdata应是两行的 xdata=xdata+[x(3),x(4)]; 两行的矩阵和一行的矩阵不能相加
再问: 还是不对,能不能qq上聊一下,或者hi上聊一下
再答: hi吧