如何添加多行 3D 单元格

How to add rows of 3D cell

我有 3-D (60x72x29) 元胞数组,里面有数字,我想在第 3 个维度上添加行,这样生成的元胞大小应该是 (60x72)。有什么优雅的方法可以做到这一点吗?

优雅的方法是不使用元胞数组来保存多维数值数据,其中每个元素仅包含一个标量。 MATLAB 针对处理多维数值数组进行了优化,因此您应该使用 cell2mat.

将数据转换为该格式

一旦它是多维数值数组,您可以将 sum 与第二个输入结合使用,第二个输入指定执行操作的维度。

data = cell2mat(old_data);
S = sum(data, 3);

如果你真的需要元胞数组,你可以在结果上使用num2cell将它变回元胞数组

C = num2cell(S);

更新

看起来您的初始数据是 字符串 的元胞数组。如果是这种情况,您可以改为使用 str2double 将字符串元胞数组转换为数值数组

data = str2double(old_data);
S = sum(data, 3);