我正在尝试使用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直线方程? 非常感谢提前!
答案 0 :(得分:1)
确保你的X和Y矩阵具有相同的形状,即
尺寸(X)应打印[1,3]
尺寸(Y)应打印[1,3]
您的X可能是列[3,1]而不是行向量