【问题标题】:MATLAB evaluate height vector of a 3D matrix into a 2D matrixMATLAB 将 3D 矩阵的高度向量计算为 2D 矩阵
【发布时间】:2013-03-21 14:55:19
【问题描述】:

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

我有一个 3D 矩阵(行、列、高) 以及一个二维矩阵(行、列)

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

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

但是还有其他方法吗?比如:

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

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

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

【问题讨论】:

    标签: matlab 3d 2d


    【解决方案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

    【讨论】:

    • 不,我现在就试试。 [] 到底是做什么的?非常感谢您这么快回复!
    • @jasper.l 参见文档:mathworks.com/help/stats/nanmax.html,第三个用例。
    • 像魅力一样工作。感谢您的解决方案和提示!
    猜你喜欢
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2013-09-21
    • 2016-09-02
    • 1970-01-01
    • 2011-01-16
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多