histogram without hist3 function
조회 수: 5 (최근 30일)
이전 댓글 표시
Hello folks
I have a problem with hist3 function. I need to draw histogram 3D without using hist function but i need to define some new function. I have 1000x2 matrix of random number from 1.5 to 3.5 range and i dont really know how to do this. I was thinking about using bar3 function fron this code:
data=[1 3 5 7 4 8 0 1 3];
If you want to distribute your data into 10 bins, you would create a new array of size 10:
histArray=zeros(1,10); % prealocate
x=0:1:9;
then, you would run a forloop to count how many times you encounter in a particular value:
for n=1:length(data)
histArray(1,data(n)+1)=histArray(1,data(n)+1)+1; % every time you meet the particular value, you add 1 into to corresponding bin
end
bar(histArray)
but i need this to use not with natural but with integral. I would be very gratefull for any help.
댓글 수: 10
Walter Roberson
2015년 5월 13일
[uniqvals, ia, ib] = unique(x);
histArray = zeros(1, length(uniqvals));
for n=1:length(ib)
histArray(1,ib)=histArray(1,ib)+1;
end
bar(uniquevals, histArray);
답변 (1개)
Image Analyst
2015년 5월 13일
You can't use b directly as an index. You need to figure out what bin that the b value should be in. Like if b = 3.4423423423 do you want that in bin number 2, 8, or 42 or 300? If you want a bin for each unit integer range, then you can just use floor() or round() on the b values.
참고 항목
카테고리
Help Center 및 File Exchange에서 Data Distribution Plots에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!