【问题标题】:convert multi D array into vector Matlab将多D数组转换为向量Matlab
【发布时间】:2014-12-26 01:22:48
【问题描述】:

提前感谢您的帮助

假设我有一个多 D 数组,这样

x(:,:,1) = [1 2 ; 3 4];
x(:,:,2) = [5 6 ; 7 8];
x(:,:,3) = [9 10 ; 11 12];

我想快速有效地将 x 转换为

y = [1 5 9 2 6 10 3 7 11 4 8 12];

除了使用循环之外,我还有一种有效的方法来解决这个问题(我想要这样做的矩阵相对较大)?

【问题讨论】:

    标签: performance matlab indexing


    【解决方案1】:

    您可以使用冒号运算符:,但您首先必须重新排列矩阵x

    x(:,:,1) = [1 2 ; 3 4];
    x(:,:,2) = [5 6 ; 7 8];
    x(:,:,3) = [9 10 ; 11 12];
    z=permute(x,[3 2 1]);
    y=z(:).'
    

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 2015-11-12
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多