Clear Filters
Clear Filters

How to save vector output from for loop?

2 views (last 30 days)
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 ]

Accepted Answer

madhan ravi
madhan ravi on 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 Comments
Areeb Siraj
Areeb Siraj on 30 Mar 2019
And if it has to be a 2D Matrix. Then
madhan ravi
madhan ravi on 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,[])

Sign in to comment.

More Answers (1)

Stephen23
Stephen23 on 31 Mar 2019
Edited: Stephen23 on 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.

Tags

Products

Community Treasure Hunt

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

Start Hunting!