【问题标题】:Histogram on elements of a 2D matrix in MatlabMatlab中二维矩阵元素的直方图
【发布时间】:2011-04-06 14:59:42
【问题描述】:

我想知道是否有任何内置函数或绘制2d array 元素直方图的简单方法。

例如,如果A=rand(100,1),那么A1D array,而hist(A)可以做直方图。

但是,如果A=rand(100,100),我想对A 的元素制作直方图,就像将A 中的每个元素视为1D array 上的元素一样。有没有简单的方法可以做到这一点?

【问题讨论】:

    标签: matlab histogram


    【解决方案1】:

    你只需要将A重塑成一个向量,然后你就可以像往常一样使用hist了:

    hist(A(:))
    

    【讨论】:

    • 我喜欢 MATLAB 的简单列向量化,A(:),因为无论从哪个方向看,数组似乎总是在微笑 :)
    • 非常感谢,乔纳斯!这正是我正在寻找的
    • @Alfred:如果您觉得我的回答有帮助,请考虑接受。
    【解决方案2】:

    这个命令会做你想做的:

    hist(reshape(A, prod(size(A)), 1))
    

    它的作用是从矩阵 A 中创建一个向量,方法是将其重新整形为一个具有一列和行数等于 A 元素数的矩阵:

    prod(size(A)) = number_of_columns(A) * number_of_rows(A)
    

    或捷径:

    hist(A(:))
    

    这会按顺序获取 A 的每个元素,因此也会生成一个向量。

    【讨论】:

    • A(:) 在乔纳斯的回答中与长整形命令相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 1970-01-01
    • 2014-02-07
    • 2011-10-10
    相关资源
    最近更新 更多