The code does not work with 1.7
显示 更早的评论
This code works normally accept 1.7
it does not count 1.7
I coul not understand why
y=[1.3,1.3,1.7,1.3,1.7,1.6,1.8,1.9,1.6]; %y=[1.7,1.7,1.7,1.7,1.7,1.7,1.7,1.7,1.7]; x=1;
for i=1:0.1:1.9
v(x)=sum(y==i);
x=x+1;
end
v
采纳的回答
更多回答(3 个)
Robert Cumming
2011-11-30
As said above you have encountered the problem of floating point arithmetic, if change your counter to be 1 instead of 0.1 (and change your inner the line to:
v = sum (y==i/10)
you will see 1.7 is counted.
Its worth understanding that computer are not exact due to the way they store information in memory, for example try:
[0.3-0.2 == 0.1]
[0.3-0.2-0.1]
They answers are not what you might expect... Note this is not a problem of Matlab alone. Have a read of this answer
Junaid
2011-11-30
Anyway you can do what ever you want from this simple one lines.
v =hist(y,[1:.1:2])
This is simple. Take the histgram. The number of bins are decided by [1:.1:2].
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!