2017-04-10 31 views
2

我有一個數據(數據名稱是testdata)在工作空間60x5雙。我有60個不同的測量和5個樣本。要在R中計算,我需要將它們保存爲我的R代碼可以使用它們的順序。我需要做的是將每列的每5行轉換爲一行,並在這5個值下面添加下一個轉置行。你可以找到我想要做的事情的圖像。如圖所示,黑色矩形應該轉換爲列,然後是紅色矩形轉置,並添加到已經用於第一步的列下。我需要這樣做60次,所以最後應該是300x1 double。我希望有人能幫我解決這個問題。感謝您的時間和幫助。如何在MATLAB中按特定順序將行轉換爲列?

最好的問候,

enter image description here

回答

3

看看這是你想要什麼:

A = magic(3); % example matrix 
B = A.'; % transpose 
B = B(:); % linearize in column-major order 

這種轉變

A = 
    8  1  6 
    3  5  7 
    4  9  2 

B = 
    8 
    1 
    6 
    3 
    5 
    7 
    4 
    9 
    2 
+1

完美的作品@LuisMendo,這正是我一直在尋找。非常感謝您的幫助和時間。 +1 –

0

Reshape會做的正是你在找什麼:

A = magic(5); % Example matrix 
B = reshape(A',[],1); % Reshapes the matrix to one vector. 
+1

您需要在'reshape'之前調換'A'(請參閱我的回答) –

+0

是的,謝謝您發現錯字! –

+0

再次感謝你,兩個版本都能正常工作。我不明白其中的差異,但給出了相同的結果。 –

相關問題