0

我正在 MATLAB 中编程,并希望使我的代码尽可能高效。但我遇到了一个问题。

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

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

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

但是还有其他方法吗?就像是:

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

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

任何帮助将不胜感激!谢谢贾斯珀

4

1 回答 1

1

你有没有尝试过

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

如果您有掩码,则可以使用时间变量

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

PS
最好不要在matlab中使用iandj作为变量名

于 2013-03-21T14:56:50.077 回答