필터 지우기
필터 지우기

how to generate a traingular distrbution (sawtooth model) ?

조회 수: 2 (최근 30일)
Amr Hashem
Amr Hashem 2015년 10월 27일
댓글: Star Strider 2015년 10월 27일
I want to generate a random (n=100)sawtooth model with width (b=24)
1st (t=0)start at 0, 2nd at 1 .... nth at n=100
t is random variable with gaussian pdf (mu=1 and st.dev=3)
finally I want to add them like:
to form a shape of summation of 100 random sawtooth model
I try:
n=100;
a=0;b=130;c=61;
u=rand(n,1);
x=zeros(n,1);
for i=1:n
U=u(i);
if U<(c-a)/(b-a)
X=a+sqrt(U*(b-a)*(c-a));
else
X=b-sqrt((1-U)*(b-a)*(b-c));
end
x(i)=X;
end
figure
hist(x,100)
which produce this figure
its a good summation model , but not perfectly what I want .
how to generate this distribution?

채택된 답변

Star Strider
Star Strider 2015년 10월 27일
편집: Star Strider 2015년 10월 27일
Guessing here, but if you want a Gaussian pdf with a mean of 1 and a standard deviation of 3, consider replacing the ‘u’ assignment with:
u = 1 + 3*randn(n,1);
The rand function produces uniformly-distributed random numbers on the interval [0,1].
  댓글 수: 6
Amr Hashem
Amr Hashem 2015년 10월 27일
편집: Amr Hashem 2015년 10월 27일
Thanks...
I adjust your last line.
plot(t, sawshift(:,1:121))
Star Strider
Star Strider 2015년 10월 27일
My pleasure.
Noted. I used my original code in the revised figure(1) plot. (It worked there.)

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

추가 답변 (0개)

Community Treasure Hunt

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

Start Hunting!

Translated by