如何添加多行 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);
我有 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);