how to save the matrix after each iteration ?

187 views (last 30 days)
riki ragùa on 14 Mar 2018
Commented: Geoff Hayes on 14 Apr 2020
I have a for loop from 1 to 768 in each iteration I will discard one old sample and add new one (the procedùre is like a convolùtion). the oùtpùt for each iteration is a matrix of dimention [384 1] I want to plot this matrix when adding new sample.

Geoff Hayes on 14 Mar 2018
riki - is the output of each iteration always of the same (384x1) dimension? If so, then you could create a matrix that will hold each of the 768 matrices (could be simply 384x768 where each column is the output from each iteration). If the output of each iteration is of a different dimension, then consider using a cell array to store the data.
riki ragùa on 15 Mar 2018
yes, the output matrix will always be of same dimention how can I hold the matrices ?

Pawel Jastrzebski on 15 Mar 2018
output = 384;
iterations = 768;
% preallocate the matrix
mResults = zeros(output, iterations);
for i = 1:iterations
mResults(:,i) = rand(output,1);
end

1 Comment

riki ragùa on 15 Mar 2018
thank you

Geoff Hayes on 15 Mar 2018
riki - since your output array on each iteration is of the same dimension, then your matrix could be
myData = zeros(384,768);
and when iterating, you could do something like
for k=1:768
% do a calculation to get the output
output = ...;
% save this to your myData matrix
myData(:,k) = output; % since output is 384x1 matrix
end

Show 1 older comment
Geoff Hayes on 15 Mar 2018
Well if you do as above and save all of the data, then the last point from each iteration will be the 384th row of myData. So this would be
myData(end,:)
where we use end to get the last row and : to get all columns of that row.
Aashish Jagadeesh Shastry on 14 Apr 2020
If the output has dimensions like (2,13) and the number of iterations is 2, how can I save the matrix for each iteration?
Geoff Hayes on 14 Apr 2020
Aashish - you could assign something like
myData = zeros(2,13);
for k=1:2
% do a calculation to get the output
output = ...;
% save this to your myData matrix
myData(k,:) = output; % since output is 2x13 matrix
end