matlab 自带函数hist画一个图像的直方图

本文介绍如何使用Matlab读取内置的'rice.png'图像,并将其转换为双精度浮点数数组。通过hist函数将图像像素值分布绘制成直方图,分为10个区间(bin),同时获取每个区间的中心位置及其对应的像素数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a = double(imread('rice.png')); % matlab自带图片
hist(a(:),10); % 分成十个bin

效果图:


[N,X] = hist(...) also returns the position of the bin centers in X.
[no,xo] = hist(a(:),10);

no是每个bin对应的y值

xo是每个bin的中心位置x值

### MATLABhist3 函数的使用方法 `hist3` 函数MATLAB 中用于绘制二维直方图的工具,适用于统计二维数据分布的情况。与一维直方图 `hist` 不同,`hist3` 可以将数据点按照两个维度进行分组,并统计每个组内的数据点数量[^1]。 #### 基本语法 `hist3(X)` 其中 `X` 是一个大小为 `n×2` 的矩阵,每一行表示一个二维数据点。该函数会根据默认的分箱数目(通常是 10×10)创建直方图并显示结果。 #### 自定义分箱 可以通过指定边缘向量或边缘数来自定义分箱方式: - `hist3(X, 'Edges', {edges_x, edges_y})` 使用用户定义的边缘向量 `edges_x` 和 `edges_y` 来确定分箱边界。 - `hist3(X, 'Nbins', [nbins_x, nbins_y])` 指定沿 x 轴和 y 轴的分箱数量。 #### 返回值 `[N, C] = hist3(...)` 返回值包括: - `N`:一个矩阵,表示每个分箱内的数据点计数。 - `C`:包含分箱边界的单元数组。 #### 示例代码 以下是一个简单的示例,展示如何使用 `hist3` 绘制二维直方图: ```matlab % 生成随机二维数据 data = randn(1000, 2); % 1000 个二维正态分布数据点 % 定义分箱边缘 edges_x = -4:0.5:4; % x 轴分箱 edges_y = -4:0.5:4; % y 轴分箱 % 绘制直方图 [N, C] = hist3(data, 'Edges', {edges_x, edges_y}); % 显示直方图 figure; bar3(N); xlabel('X 轴'); ylabel('Y 轴'); zlabel('计数'); title('二维直方图示例'); ``` 在上述代码中,`randn(1000, 2)` 生成了 1000 个服从标准正态分布的二维数据点。通过设置 `edges_x` 和 `edges_y`,可以精确控制分箱范围和粒度[^2]。 #### 注意事项 - 如果未指定分箱边缘或数量,默认情况下 `hist3` 会使用 10×10 的分箱。 - 数据点落在分箱边界之外时,不会被计入任何分箱内[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值