Clear Filters
Clear Filters

Storing Multiple Matrices from a For Loop

190 views (last 30 days)
How do I index and store multiple matrices as a run through a for loop? For instance, I generate a 10x10 matrix the first time through and I want to store this result for access later before proceeding to the next matrix generation.

Accepted Answer

Cedric on 7 Apr 2013
Edited: Cedric on 7 Apr 2013
You can use a cell array, e.g
n = 10 ;
M = cell(n, 1) ;
for k = 1 : n
M{k} = 20*k + rand(10) ;
you can see that each
M{1}, M{2}, etc
is a the 10x10 matrix defined at a specific iteration of the loop.
Note the difference between regular block indexing with () and accessing cells content with {}:
is cell #1 of the cell array M, whereas
is the content of cell #1 (in the present case, it is a 10x10 matrix).
Bryan Guilcapi
Bryan Guilcapi on 20 Jul 2022
Hi, i have a question, is possible to plot all this cell in one plot calling the data that are inside of the cell?

Sign in to comment.

More Answers (2)

Saeed Bello
Saeed Bello on 7 Aug 2017
You can use a three-dimensional matrix e.g.
for i = 1:8 % no. of iteration
S(:, :, i) = myfunx(i,10); % 10 x 10 output
Then you can access each iteration by calling S(:, : , 1) or S(:, : , 2) or S(:, : , 3) and so on. Source:
ELIAS PERATICOS on 27 Apr 2018
Saeed Bello, thanks a lot this was very useful.
rees adah
rees adah on 31 Oct 2018
I also have a similar problem but this solution didn't work for me.i intend to store the matrices coming from a nested for loop into a multidimensional array and reference it do I do that please?

Sign in to comment.

D.K. Rao
D.K. Rao on 1 Jul 2017
Thank you very much Cedric Wannaz


Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!