如何添加 3D 单元格行



我有包含数字的 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);

最新更新