2013-09-24 33 views
1

我正在嘗試使用matlab從多個矩陣中獲取線方程。我有三個矩陣A,B,C,都是相同的大小(5000到2000年);對於x軸,它始終是X = [10,15,20];對於y軸,它將是這樣的矩陣[A(i,j),B(i,j),C(i,J )]。基本上三個元素來自三個矩陣的相同位置。 然後我使用polyfit來找出斜坡和攔截。 所以我總共有5000X2000的直線。我的目標是獲得這些5000X2000系列的所有方程式。polyfit在兩個循環中使用

我寫像這樣 代碼

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

您得到的錯誤是什麼? – darthbith

回答

1

確保您的X和Y矩陣是相同的形狀,即

大小(X)應打印[1,3]

大小(Y)應該打印[1,3]

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