# Loop to generate random numbers and compile results for each iterations

11 views (last 30 days)
JL on 27 Aug 2019
Commented: JL on 28 Aug 2019
Hi everyone, I've been trying to do a loop (i know I could just use rand(100000000,5) for what I want to achieve. May I know if there's any way I can compile results from the first iterations to the last??
for iter = 1:100 %run rand 1000 times
a=rand(1000000,5);
b=[0.02 0.03 0.11 0.02 0.05];
res = bsxfun(@gt,a,b)
d = bi2de(res);
dsubset=size(d,1);
dones=ones(dsubset,1);
[G,ID] = findgroups(d);
D = [splitapply(@sum,dones,G),ID];
C = [splitapply(@sum,dones,G),ID];
C(:,1)=[];
bC=de2bi(C);
Compile = [D,bC] %this be updated for new unique rows generated plus how many times they appear
end

Stephen on 28 Aug 2019
Edited: Stephen on 28 Aug 2019
You could easily use a cell array:
N = 100;
Z = cell(1,N);
for k = 1:N
Z{k} = whatever you want to store
end
The stored data from each iteration is available in Z.
After the loop you can likely concatenate the contents of the cell array using
A = cat(1,Z{:}) % Or 2, depending on the array sizes.
JL on 28 Aug 2019