Hello,
I have a code for plotting the signal like this :
samples=20;
mean_value=-4.2;
std_dev=2.3;
t=0:1:samples-1;
s=mean_value+std_dev*randn(1,samples);
plot(t,s);
and i want to create histogram, but i have error saying:"attempted to access hist(0)" or hist(-1). I have a code like this and I don't know what is the problem:
%histogram
nbins=10;
xmin=-15;
xmax=5;
hist=zeros(1,nbins);
w=(xmax-xmin)/nbins;
x=xmin+w:samples/nbins:xmax+w;
for i=1:length(s)
if s(i)<= xmax && s(i)>= xmin
idx=floor(s(i)-xmin/w)+1;
hist(idx)=hist(idx)+1;
end
end
bar(x,hist/trapz(x,hist));
hold on
x2=xmin:0.1:xmax-0.1;
y=normpdf(x2,mean_v,std_dev);
plot(x2,y);
I am pretty new at this and could use some help. Thank you.

답변 (2개)

Steven Lord
Steven Lord 2018년 10월 24일

0 개 추천

Why not just call the histogram function introduced in release R2014b?

댓글 수: 1

Uros Jankovic
Uros Jankovic 2018년 10월 24일
I just wanted to understand how does it work this way, and I will also gain some knowledge that I might need in future.

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 2018년 10월 24일

0 개 추천

hist() is an old deprecated function. Don't use it for the name of your variable.
Also you must make sure that idx never is 0 or negative or a non-integer floating point number.

카테고리

도움말 센터File Exchange에서 Histograms에 대해 자세히 알아보기

제품

릴리스

R2015a

질문:

2018년 10월 24일

답변:

2018년 10월 24일

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by