How can I truncate a random generated exponentail distribution?
3 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hi, I'm trying to truncate an exponential distribution generated with the random function:
for mu_curr=1:100;
mu_exp=linspace(0.002,1,100);
x=1:desired_length;
mu_curr_exp=mu_exp(curr_distr);
%% generating ISI
ISI_exp=((random('Exponential',mu_curr_exp,length(x),1)));
%% concatenating in a matrix
Y_EXP(curr_distr,1:length(x))=ISI_exp';
end
I am using this loop because I have to change the mu value 100 times. I have to truncate this so number don't go below 1e-6 and above 0.2. Do you have any ideas? I tried to use the distribution object but I don't know how to use it to perform calculations on the results. Thank you,
Carolina
0 comentarios
Respuestas (3)
JESUS DAVID ARIZA ROYETH
el 5 de Nov. de 2019
I leave you an idea that can be useful, in R numbers are generated with an exponential distribution in the range you want :
n=20;%amount of values to generate
mu=0.1;%mu
R = mapminmax(exprnd(mu,1,n),1e-6,0.2)
KALYAN ACHARJYA
el 5 de Nov. de 2019
Editada: KALYAN ACHARJYA
el 5 de Nov. de 2019
I have to truncate this so number don't go below 1e-6 and above 0.2. Do you have any ideas?
Is this?
I am expecting the number is Y_EXP, if else, please replace Y_EXP with respective number.
Y_EXP(Y_EXP<1e-6 | Y_EXP>0.2)=0;
Star Strider
el 5 de Nov. de 2019
2 comentarios
Star Strider
el 5 de Nov. de 2019
My pleasure.
However, I disagree!
pd = makedist('Normal')
t = truncate(pd,0,inf)
y = pdf(t, (0:5:10))
produces:
y =
0.797884560802865 2.9734390294686e-06 1.53891972534128e-22
What ‘calculations’ do you want to perform with it?
See: Working with Probability Distributions and specifically Probability Distribution Objects for an extended discussion of their capabilities.
Ver también
Categorías
Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!