2013-04-16 35 views
0

我想計算幾百行數據,使用矩陣求解線性方程組。我正在建立基於行數據的矩陣。我將得到的3x3反過來,然後乘以兩次,一次爲x,一次爲y。我從中得到6個變量:a,b,c,d,ef。如何複製示例以便解決所有行?我提供了數據,然後提供了我現在使用的公式。現在,如果我複製它跳過3行,或者如果我複製3個例子,它跳過9行。我的意思是我想我可以嘗試在所有300中插入額外的行,所以我最終得到900行,但必須有一個更簡單的方法!如何複製在Excel中引用行的矩陣?

我想不出如何讓我的數據在這裏正確所以這裏填充是一個鏈接:http://codepad.org/qZwua3h9

注:我分手了矩陣行,這樣就可以更容易看到它們,它們不會分裂放在我的牀單上。

編輯:如果有人可以弄清楚如何在這裏粘貼示例數據,我會歡迎它,以便這篇文章可能對未來某個人有用。我不確定鍵盤保持粘貼的時間。

回答

0

我放棄了,得出的結論是,沒有合理的努力量會產生預期的結果。這個例子不僅僅是一次轉化,而是預期的例子是3次轉化 - 所以工作是三次。我在15分鐘內想出了一個Matlab解決方案。我明白,不是每個人都可以訪問Matlab。所以,如果有人提出了任何合理的工作excel解決方案,我會歡迎知識並將該答案標記爲已接受的答案。無論如何,這裏是Matlab腳本:

M = csvread('pointData.csv'); 

    T1result = zeros(215,6); 
    T2result = zeros(215,6); 
    T3result = zeros(215,6); 

    for i=1:215, 
     m = [M(i,1) M(i,2) 1; M(i,3) M(i,4) 1; M(i,5) M(i,6) 1]; 
     x = [M(i,7);M(i,9);M(i,11)]; 
     y = [M(i,8);M(i,10);M(i,12)]; 
     xresult = m\x; 
     yresult = m\y; 
     T1result(i,:) = [transpose(xresult),transpose(yresult)]; 

     m = [M(i,7) M(i,8) 1; M(i,9) M(i,10) 1; M(i,11) M(i,12) 1]; 
     x = [M(i,13);M(i,15);M(i,17)]; 
     y = [M(i,14);M(i,16);M(i,18)]; 
     xresult = m\x; 
     yresult = m\y; 
     T2result(i,:) = [transpose(xresult),transpose(yresult)]; 

     m = [M(i,13) M(i,14) 1; M(i,15) M(i,16) 1; M(i,17) M(i,18) 1]; 
     x = [M(i,19);M(i,21);M(i,23)]; 
     y = [M(i,20);M(i,22);M(i,24)]; 
     xresult = m\x; 
     yresult = m\y; 
     T3result(i,:) = [transpose(xresult),transpose(yresult)]; 
    end 

    LeafId = csvread('extraColumnsForID.csv'); 
    Tresult = [LeafId, T1result, T2result, T3result]; 

    csvwrite('transforms.csv',Tresult);