MATLAB的imhist的问题a=[2 1 3; 5 1 2];h=imhist(a,10)结果是 0 0 0 0 0 0 0 0 0 6结果为什么会这样

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 04:03:24

MATLAB的imhist的问题a=[2 1 3; 5 1 2];h=imhist(a,10)结果是 0 0 0 0 0 0 0 0 0 6结果为什么会这样
MATLAB的imhist的问题
a=[2 1 3; 5 1 2];
h=imhist(a,10)
结果是
0
0
0
0
0
0
0
0
0
6
结果为什么会这样

MATLAB的imhist的问题a=[2 1 3; 5 1 2];h=imhist(a,10)结果是 0 0 0 0 0 0 0 0 0 6结果为什么会这样
a=[2 1 3; 5 1 2];输入matlab后是double型的数据,imhist(a,10)是把0-1分成了10个区间,double型的最大值为1,而a中都为大于1的值,所以都被置为1,即a中为6个1.
所以h=imhist后结果就是你的结果.
不知道你的本意是什么?是显示a中数字出现的频率,还是显示什么?
如果是显示a数字出现的频率,将a转换成uint8型,然后h=imhist(a)即可,默认是把0-255分成256个区间,结果就是1出现了2次,2出现了2次,3出现了1次,5出现了1次.
给 你举个例子
a =
2 1 3
5 1 2
>> [h,x]=imhist(a,10)
h =
0
0
0
0
0
0
0
0
0
6
x =
0
0.1111
0.2222
0.3333
0.4444
0.5556
0.6667
0.7778
0.8889
1.0000
可以看出,h为频率,x为区间段.