我在Matlab中有一个函数需要作为输入
列单元格,其中每个单元格包含一个SPD矩阵
更准确地说,这个函数需要3个输入参数,前两个是列单元格,其中每个单元格包含一个SPD矩阵,但我不知道如何在Matlab中定义一个列单元格。我试过这个:
TestData(:,:,12) = T;
TestData应该是我的单元格列,T
是应该在此列中的矩阵。对于我拥有的每个矩阵,我将它放在一个名为T
的变量中,然后使用上面的命令将其添加到3D数组中。所以第一个矩阵在TestData(:,:,1)
,第二个矩阵在TestData(:,:,1)
,依此类推。当我使用TestData
作为输入变量运行我的函数时,我收到此错误:
来自非单元格数组对象的单元格内容引用。
所以我认为我没有正确定义一个单元格列。
答案 0 :(得分:2)
3D阵列不一个单元格。如果您希望3D阵列的每个3D切片都是单独的单元格元素,则可以使用num2cell
,然后调用squeeze
以删除所有单例维度并使其成为N x 1
单元格阵列。
inputs = squeeze(num2cell(TestData, [1 2]));