How do you append to a matrix within a for loop?

Hi, I am using a for loop to process data (this part works fine). What I need to do is take the matrix (A) and after each loop update A to create one matrix. For instance, in the image below A is produced on the first loop, during loop 2 A "grows" to include the data from loop 1 and the data from loop 2, and so on.
Loop 1 produces a matrix, on the next iteration I need to append to this matrix the results of that loop, and so on until all of the data is processed.
It should be noted that the number of rows on each loop is unknown. However, the number of columns is fixed to 7.
Any ideas would be greatly appreciated please.

 Respuesta aceptada

José-Luis
José-Luis el 8 de Jul. de 2016
Editada: José-Luis el 8 de Jul. de 2016
your_result = [];
for ii = whatever
some_vector = some_function(of_something);
your_result = [your_result; {some_vector}];
end

8 comentarios

chels19
chels19 el 8 de Jul. de 2016
Thanks, this has worked now.
José-Luis
José-Luis el 8 de Jul. de 2016
My pleasure.
Pradnya Raut
Pradnya Raut el 6 de Nov. de 2019
Is there any faster way to do this, other than above method?
I find this a very easy and nice method... how can one do this for string arrays though?
Thank you very much @José-Luis!
I was wondering, is there also a possibility to define within the for loop at this section (marked with %here!) that I would like to insert the results in column number xy of my result matrix (here called "your_result")?
for ii = whatever
some_vector = some_function(of_something);
your_result = [your_result; {some_vector}]; % here!
end
this is a beautiful solution. thank you @José-Luis
Ruijie Zhu
Ruijie Zhu el 4 de Oct. de 2021
cheers mate
Mani
Mani el 8 de Mayo de 2024
Nice one.

Iniciar sesión para comentar.

Más respuestas (3)

Azzi Abdelmalek
Azzi Abdelmalek el 8 de Jul. de 2016
A=[1 2;3 4]
B=[4 5;6 7]
A=[A;B]

1 comentario

chels19
chels19 el 8 de Jul. de 2016
Thank you but this just replaces the data within the loop. I need to update A on every iteration so that it grows.

Iniciar sesión para comentar.

% make an empty array
% the main command is end+1
N=[];
for i=0:10
x=i*i;
N(end+1)=[x]
end
N = 0
N = 1×2
0 1
N = 1×3
0 1 4
N = 1×4
0 1 4 9
N = 1×5
0 1 4 9 16
N = 1×6
0 1 4 9 16 25
N = 1×7
0 1 4 9 16 25 36
N = 1×8
0 1 4 9 16 25 36 49
N = 1×9
0 1 4 9 16 25 36 49 64
N = 1×10
0 1 4 9 16 25 36 49 64 81
N = 1×11
0 1 4 9 16 25 36 49 64 81 100
Manuela
Manuela el 13 de En. de 2025

0 votos

I modified the code of the first answer in order to obtain a matrix and not a list of cells:
your_result = [];
for ii = whatever
some_vector = some_function(of_something);
your_result = cat(1,your_result,some_vector);
end

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Preguntada:

el 8 de Jul. de 2016

Respondida:

el 13 de En. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by