使用octave / matlab重新整形和重新排列数组

时间:2017-03-17 16:41:08

标签: arrays matlab octave reshape

我试图重塑数组,执行操作然后将其重新整形为原始数据。请参阅我试图获得的输出示例。我可以ab,但我无法让c再次看起来像a

步骤1)(原始数组)

    1                     1                     1
    2                     2                     2
    3                     3                     3
    4                     4                     4
    5                     5                     5

步骤2)(重塑并执行一些操作)

1,1,1,2,2,2,3,3,3,4,4,4,5,5,5

步骤3)(数组重新变形为原始大小,看起来像step 1这就是我想要的

    1                     1                     1
    2                     2                     2
    3                     3                     3
    4                     4                     4
    5                     5                     5

我可以获取变量ab,但我不确定如何将c的{​​{1}}重新塑造为再次看起来像b参见

下面的示例代码和输出
a

Ps:我使用Octave 4.0,就像Matlab一样。

1 个答案:

答案 0 :(得分:1)

MATLAB和Octave使用列主要排序,因此您需要重新考虑结果。数据将首先填充,但您希望它首先填充。要实现此目的,您可以将列数指定为提供给reshape的行数,然后转置结果

c = reshape(b, 3, []).'

或更灵活

c = reshape(b, flip(size(a))).'