how to save the matrix after each iteration ?

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.

2 Comments

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.
yes, the output matrix will always be of same dimention how can I hold the matrices ?

Sign in to comment.

Answers (2)

output = 384;
iterations = 768;
% preallocate the matrix
mResults = zeros(output, iterations);
for i = 1:iterations
% your code, i.e.:
mResults(:,i) = rand(output,1);
end
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

4 Comments

thank you for your help it works . I have another question as we said the output of each iteration is a 384*1 matrix name it T. if I want to save only the first matrix (when i=1) then I will save for i>1 the last point of matrix T which is T(384,1) because I want to plot all this at the end . T(i=1) and the others points .
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.
If the output has dimensions like (2,13) and the number of iterations is 2, how can I save the matrix for each iteration?
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

Sign in to comment.

Categories

Asked:

on 14 Mar 2018

Commented:

on 14 Apr 2020

Community Treasure Hunt

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

Start Hunting!