如何添加3D单元格行

时间:2017-04-03 19:23:36

标签: arrays matlab matrix cell-array

我有3-D(60x72x29)单元格数组,里面有数字,我想在第3维度上添加行,这样得到的单元格大小应为(60x72)。有没有优雅的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

优雅的方法是不使用单元格数组来保存多维数字数据,其中每个元素只包含一个标量。 MATLAB针对处理多维数字数组进行了优化,因此您应该使用cell2mat将数据转换为该格式。

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

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

如果你确实需要一个单元格数组,可以在结果上使用num2cell将其重新转换为单元格数组

C = num2cell(S);

<强>更新

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

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