2017-04-10 144 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

再次感谢你,两个版本都能正常工作。我不明白其中的差异,但给出了相同的结果。 –