【问题标题】:Reshaping 3 dimensional array to 2 by stacking matrixes horizontally [duplicate]通过水平堆叠矩阵将3维数组重塑为2[重复]
【发布时间】:2017-09-12 21:41:15
【问题描述】:

我有 4x3x2 数组:

A(:,:,1) = 
 1 10 100
 2 20 200
 3 30 300 
 4 40 400  

A(:,:,2) = 
 5 50 500
 6 60 600  
 7 70 700
 8 80 800   

我想将其重塑为大小为 8x3 的 B 矩阵,并将每个矩阵的结构保留为:

 B = 
 1 10 100
 2 20 200
 3 30 300 
 4 40 400
 5 50 500
 6 60 600  
 7 70 700
 8 80 800  

知道如何以一种简单而整洁的方式做到这一点吗?

【问题讨论】:

    标签: matlab reshape


    【解决方案1】:

    here所见。

    方法一:置换和重塑

    B = reshape(permute(A, [2 1 3]), size(A, 2), [])'
    

    方法2:单元格->矩阵

    B = num2cell(A, [1 2]);
    B = vertcat(B{:})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-19
      • 2013-08-03
      • 1970-01-01
      • 2018-06-20
      • 2013-05-17
      • 2023-01-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多