Borrar filtros
Borrar filtros

How to save vector output from for loop?

2 visualizaciones (últimos 30 días)
Areeb Siraj
Areeb Siraj el 30 de Mzo. de 2019
Comentada: Stephen23 el 31 de Mzo. de 2019
For i=1:10 A=[i i+1 i+2; i+1 i i+1; i+2 i+1 i]; end
Now I want to make a new matrix Such that it's first element is the output of loop's eleration and so on.
Like this B = [A1 A2 A3.....A10 ]

Respuesta aceptada

madhan ravi
madhan ravi el 30 de Mzo. de 2019
Save it as a 3D matrix:
A=zeros(3,3,10); % pre-allocate
for k = 1:10
A(:,:,k)=[k k+1 k+2; k+1 k k+1; k+2 k+1 k];
end
  3 comentarios
Areeb Siraj
Areeb Siraj el 30 de Mzo. de 2019
And if it has to be a 2D Matrix. Then
madhan ravi
madhan ravi el 30 de Mzo. de 2019
B=bsxfun(@plus,[0 1 2;1 0 1;2 1 0],(reshape(1:10,1,1,numel(1:10))));
reshape(B,3,[])

Iniciar sesión para comentar.

Más respuestas (1)

Stephen23
Stephen23 el 31 de Mzo. de 2019
Editada: Stephen23 el 31 de Mzo. de 2019
Much simpler without a loop:
>> A = toeplitz(1:3)+reshape(1:9,1,1,[])
A(:,:,1) =
1 2 3
2 1 2
3 2 1
(:,:,2) =
2 3 4
3 2 3
4 3 2
A(:,:,3) =
3 4 5
4 3 4
5 4 3
... more pages here
A(:,:,9) =
9 10 11
10 9 10
11 10 9
A(:,:,10) =
10 11 12
11 10 11
12 11 10
For MATLAB versions prior to R2016b replace the + with bsxfun and plus.
  2 comentarios
Areeb Siraj
Areeb Siraj el 31 de Mzo. de 2019
Thank you I got it.
Stephen23
Stephen23 el 31 de Mzo. de 2019
@Areeb Siraj: then you can vote for my answer too :)

Iniciar sesión para comentar.

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by