Matlab 中二维矩阵元素的直方图

发布于 2024-10-30 22:18:49 字数 318 浏览 2 评论 0原文

我想知道是否有任何内置函数或简单的方法来绘制二维数组元素的直方图。

例如,如果 A=rand(100,1),则 A 是一个 1D 数组,并且 hist(A)< /code> 可以做直方图。

但是,如果 A=rand(100,100),并且我想对 A 的元素制作直方图,就像处理 A 中的每个元素一样code> 作为一维数组上的元素。有没有简单的方法可以做到这一点?

I am wondering if there is any build in function or an easy way to plot a histogram of elements of a 2d array.

For example, if A=rand(100,1), then A is an 1D array, and hist(A) can do the histogram.

However, what if A=rand(100,100), and I would like to make a histogram on elements of A, just like treating each element in A as an element on a 1D array. Is there a easy way to do so?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情仇皆在手 2024-11-06 22:18:49

您只需将 A 重塑为向量,然后就可以像往常一样使用 hist

hist(A(:))

You just have to reshape A into a vector, then you can use hist as usual:

hist(A(:))
千里故人稀 2024-11-06 22:18:49

该命令将执行您想要的操作:

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

它的作用是通过将矩阵 A 重塑为一列和行数等于 A 元素数量的矩阵来创建一个向量:

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

或者简单的方法:

hist(A(:))

这需要A 的每个元素按顺序排列,因此也生成一个向量。

This command will do what you want:

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

What it does is create a vector out of the matrix A by reshaping it into a matrix with one column and a number of rows equal to the number of elements of A:

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

Or the short way:

hist(A(:))

This takes every element of A in sequence and thus also generates a vector.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文