Azzera filtri
Azzera filtri

How to save vector output from for loop?

2 visualizzazioni (ultimi 30 giorni)
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 ]

Risposta accettata

madhan ravi
madhan ravi il 30 Mar 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 Commenti
Areeb Siraj
Areeb Siraj il 30 Mar 2019
And if it has to be a 2D Matrix. Then
madhan ravi
madhan ravi il 30 Mar 2019
B=bsxfun(@plus,[0 1 2;1 0 1;2 1 0],(reshape(1:10,1,1,numel(1:10))));
reshape(B,3,[])

Accedi per commentare.

Più risposte (1)

Stephen23
Stephen23 il 31 Mar 2019
Modificato: Stephen23 il 31 Mar 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 Commenti
Areeb Siraj
Areeb Siraj il 31 Mar 2019
Thank you I got it.
Stephen23
Stephen23 il 31 Mar 2019
@Areeb Siraj: then you can vote for my answer too :)

Accedi per commentare.

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by