polyfit用于两个循环

时间:2013-09-24 23:50:38

标签: matlab matrix regression linear

我正在尝试使用matlab从多个矩阵中获取线方程。我有三个矩阵A,B,C,都是相同的大小(5000乘2000); 对于x轴,它总是X = [10,15,20]; 对于y轴,它将是这样的矩阵[A(i,j),B(i,j),C(i,J)]。基本上三个元素来自三个矩阵的相同位置。 然后我用polyfit找出斜率和截距。 所以我总共有5000X2000直线。我的目标是获得这些5000X2000线的所有方程式。

我写了这样的东西 代码

for i=1:5000
for j=1:2000
Y=[A(i,j),B(i,j),C(i,j)];
LT=polyfit(X,Y,1);
end
end 

但在Y = [A(i,j),B(i,j),C(i,j)]中得到错误。

实际上为了避免使用循环,我尝试使用矩阵运算来进行线性回归。它很成功。我想通过在两个循环中使用polyfit来了解我的另一种方法有什么问题。

我可以一个接一个地做。 例如,     X = [10,15,20];     Y = [A(1,1),B(1,1),C(1,1)];     PT = polyfit(X,Y,1); 我可以得到上面的结果,但是当我尝试嵌套循环时它会运行错误。

对于我的情况,是否可以使用polyfit来获得5000X2000直线方程? 非常感谢提前!

1 个答案:

答案 0 :(得分:1)

确保你的X和Y矩阵具有相同的形状,即

尺寸(X)应打印[1,3]

尺寸(Y)应打印[1,3]

您的X可能是列[3,1]而不是行向量