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 ]

 채택된 답변

madhan ravi
madhan ravi 2019년 3월 30일

1 개 추천

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

Without loop:
B=[0 1 2;1 0 1;2 1 0]+(reshape(1:10,1,1,numel(1:10))); % since to 2016b
B=bsxfun(@plus,[0 1 2;1 0 1;2 1 0],(reshape(1:10,1,1,numel(1:10)))); % prior to 2016b
Areeb Siraj
Areeb Siraj 2019년 3월 30일
And if it has to be a 2D Matrix. Then
B=bsxfun(@plus,[0 1 2;1 0 1;2 1 0],(reshape(1:10,1,1,numel(1:10))));
reshape(B,3,[])

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Stephen23
Stephen23 2019년 3월 31일
편집: Stephen23 2019년 3월 31일

2 개 추천

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

Areeb Siraj
Areeb Siraj 2019년 3월 31일
Thank you I got it.
Stephen23
Stephen23 2019년 3월 31일
@Areeb Siraj: then you can vote for my answer too :)

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

제품

태그

질문:

2019년 3월 30일

댓글:

2019년 3월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by