Save Monte Carlo output

2 views (last 30 days)
Wesser
Wesser on 7 Apr 2021
Commented: Wesser on 8 Apr 2021
This is probablly a silly question, and I'm missing the obvious, but how does one save the output of monte carlo iterations, without overwiritng the previous iteration? For example, one MC run returns the following:
ExpoStart(column)=row; % a row vector
I have a long code subject to a Monte Carlo that looks something like this:
nsamples=500; %500 monte carlo iterations
for i=1:nsamples
hlm = unifrnd(6,9.7); %1st variable going through MC
hlfm = unifrnd(3.9,5.9); %2nd variable going through MC
for column = (1:ncolumn) %start of pharma-mondel loop
for t = 1:timesteps
% here is a long pharma-mondel, not included for simplicity
end
ExpoStart(column)=row; % pharma-mondel output from one iteration of monte carlo
end %end of pharma-mondel loop
%this is were I beleive there should be a line saving the "ExpoStart(column)" for each of...
%the 500 iteration of the monte carlo, but I'm not sure how to do this with without overwriting the last iteration.
end
I imagine the output being 500 rows of ExpoStart(column), with each row being output from sequential monte carlo iterations....but how to code this...?
Thanks you in advance for any suggestions/ help you maybe able to provide!

Accepted Answer

David Fletcher
David Fletcher on 7 Apr 2021
Change the line
ExpoStart(column)=row
to
ExpoStart(i,column)=row
And (I think) it will do what you want. There is an argument for pre-allocating the array in advance rather than have Matlab continually grow it on the fly, but if it's not really big, I wouldn't worry over it too much.
  3 Comments
Wesser
Wesser on 8 Apr 2021
Thank you.

Sign in to comment.

More Answers (0)

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!