Solution to speed up loop with gamma distribution (gampdf)?

2 Ansichten (letzte 30 Tage)
le duy nguyen
le duy nguyen am 22 Jan. 2019
Kommentiert: le duy nguyen am 22 Jan. 2019
Dear readers,
Is there any solution to speed up this M-file if n = 1.000.000 ? Any help is much appreciate.
best regards,
Duy Nguyen
tic
% number of iteration
n = 1000;
% prepare parameters
a = 0; b = 100;
alpha = a+(b-a)*rand(n,1);
c = 0; d = 2000;
beta = c+(d-c)*rand(n,1);
% loop
t = 1:500;
TTD = zeros(numel(t),n);
for i = 1:n
TTD(:,i) = gampdf(t,alpha(i),beta(i));
end
toc
% Elapsed time is 1.082072 seconds.

Akzeptierte Antwort

Torsten
Torsten am 22 Jan. 2019
100 sec to beat:
faktor = 1.0./(beta.^alpha.*gamma(alpha));
for i = 1:n
TTD(:,i) = faktor(i)*t.^(alpha(i)-1.0).*exp(-t/beta(i));
end
  1 Kommentar
le duy nguyen
le duy nguyen am 22 Jan. 2019
Although there are tiny differences between two TTDs, this solution is perfect to me. Thanks a lot!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by