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