MATLAB将3D矩阵的高度向量评估为2D矩阵

时间:2013-03-21 14:55:20

标签: matlab 3d 2d

我正在使用MATLAB进行编程,并希望尽可能提高代码效率。 但我遇到了一个问题。

我有一个3D矩阵(行,列,高度) 和2D矩阵(行,列)

我想将高度列的最大值保存在2D矩阵的相应单元格中。这可以通过for循环来完成。

for i=1:row
    for j=1:column
        2D(i,j)=nanmax(3D(i,j,:));
    end
end

但还有其他方法吗?类似的东西:

2D(mask)=3D(mask,nanmax(:));

掩码是一个逻辑矩阵,可能只包含一个以使其更容易。

任何帮助将不胜感激! 谢谢 碧玉

1 个答案:

答案 0 :(得分:1)

你试过吗

twoD = nanmax( threeD, [], 3 );

如果你有面具,你可以使用时间变量

tmp = nanmax( threeD, [], 3 );
twoD(mask) = tmp(mask);

PS
It is best not to use i and j as variable names in matlab