【问题标题】:Converting a cell row to a cell column将单元格行转换为单元格列
【发布时间】:2017-02-15 02:31:11
【问题描述】:

我有一个矩阵 B (1 * 5 单元格) 我想将它更改为 B (5 * 1 单元格) 知道矩阵的每个元素都包含 (1 * 18 单元格) 并且每个元素都是一个单元格

原始矩阵

        [1]           [2]        [3]           [4]          [5]`
[1] (1*18 cell)   (1*18 cell)   (1*18 cell) (1*18 cell)  (1*18 cell)

我的目标是:

1) 将行从 B 转换为列% 我尝试使用 C = A (:);和 C = B。'

2) 使用 cell2mat 使 B 成为具有 cell2mat% 错误的无单元矩阵(第 53 行) 不支持包含元胞​​数组或对象的元胞数组。

想要的输出是:

        [1]  [2]   [3]    [4]    [5]    [6]   [7]   [8]    [9]   [10]   [11]  ... [18]  
    [1] 2    1.5   1.69   1.02   1      1.36  1     2      1.67  1.20   1.36  ...     
    [2] 2    1.53  1.99   1      1.36   1     2     1      1     1.99   1.02 ...     
    [3] 1.02 1     1.36   1.3    2      1.67  1.20  1.36   1.99  2      1.5  ...  
    [4] 2    1.53  1.99   1      1.36   1     2     1      1     1.36   1.99 ...   
    [5] 1.5  1.69  1.02   1.2    1.36   1     2     1      1.36   1.5   1.5 ...

谢谢

【问题讨论】:

    标签: matlab


    【解决方案1】:

    您可以只使用cat(结合{} 索引创建一个逗号分隔的列表)沿第一维连接B 中的所有元胞数组

    out = cat(1, B{:});
    

    如果您希望结果不再是单元格,请在输出中使用 cell2mat

    cell2mat(out)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-30
      相关资源
      最近更新 更多