如何在MATLAB中按特定顺序将行转换为列?

时间:2017-04-10 09:26:27

标签: matlab matrix

我在工作空间 60x5 double 中有一个数据(数据名称为testdata)。我有60种不同的测量值和5个样本。要在R中计算,我需要按照我的R代码可以使用它们的顺序保存它们。我需要做的是将每列的每5行转换为一行,并在这5个值下添加下一个转置行。你可以找到我想做的图像。如图所示,黑色矩形应转换为列,然后红色矩形转置并添加到已用于第一步的列下。我需要这样做60次,所以最后应该 300x1 double 。我希望有人可以帮我解决这个问题。感谢您的时间和帮助。

最诚挚的问候,

enter image description here

2 个答案:

答案 0 :(得分: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 :(得分:0)

Reshape将完全符合您的要求:

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