【问题标题】:How to create column cells, where each cell contains matrix如何创建列单元格,其中每个单元格都包含矩阵
【发布时间】:2016-12-12 21:17:28
【问题描述】:

我在 Matlab 中有一个函数需要作为输入

列单元格,其中每个单元格包含一个 SPD 矩阵

更准确地说,这个函数需要3个输入参数,前两个是列单元格,每个单元格都包含一个SPD矩阵,但是我不知道如何在Matlab中定义一个列单元格。我试过这个:

TestData(:,:,12) = T;

TestData 应该是我的单元格列,T 是应该在此列中的矩阵。对于我拥有的每个矩阵,我将其放入名为T 的变量中,然后使用上述命令将其添加到 3D 数组中。所以第一个矩阵在TestData(:,:,1),第二个在TestData(:,:,1),依此类推。当我以TestData 作为输入变量运行我的函数时,我收到此错误:

来自非单元格数组对象的单元格内容引用。

所以我认为我没有正确定义单元格列。

【问题讨论】:

  • 这不是一个单元格,它是一个像你说的那样的 3D 数组。你可能想要num2cell(TestData, 3)

标签: matlab


【解决方案1】:

3D 数组不是一个单元格。如果您希望 3D 数组的每个 3D 切片成为单独的单元格元素,您可以使用 num2cell,然后调用 squeeze 来删除所有单例维度并使其成为 N x 1 单元格数组。

inputs = squeeze(num2cell(TestData, [1 2]));

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-24
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多