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