Creating an Array with nested for loops.

If I have an array say A = 1:4, how would I create a new 1 x 7 array with the following elements and structure with a nested for loop? I'm very confused.
4 4 4 4 4 4 4
4 3 3 3 3 3 4
4 3 2 2 2 3 4
4 3 2 1 2 3 4
4 3 2 2 2 3 4
4 3 3 3 3 3 4
4 4 4 4 4 4 4

댓글 수: 1

Stephen23
Stephen23 2016년 9월 21일
편집: Stephen23 2016년 9월 21일
@Nikko Jeffreys: I edited your question and replaced the example that you just deleted. Please do not delete or edit questions so that they do not make sense. We are not your personal MATLAB help service: we are volunteers here to help everyone who reads this forum. When you edit your question and remove all useful information you make our answers useless for anyone else reading this forum, the exact people we volunteer to help.

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

 채택된 답변

Andrei Bobrov
Andrei Bobrov 2016년 9월 19일
편집: Andrei Bobrov 2016년 9월 19일

0 개 추천

A = 1:4;
m = numel(A);
[ii,jj] = ndgrid(1:2*m-1);
out = A(max(abs(ii-m),abs(jj-m))+1);
or
m = numel(A);
s = zeros(2*m-1);
s(m,m) = 1;
out = A(bwdist(s,'chessboard')+1);
or with for..end loop
m = numel(A);
out = zeros(2*m-1);
for jj = 1:m
out(jj:m*2-jj,jj:m*2-jj) = A(m + 1 -jj);
end

추가 답변 (2개)

Stephen23
Stephen23 2016년 9월 19일
편집: Stephen23 2016년 9월 19일

1 개 추천

Using a for loop:
A = 1:4;
N = numel(A);
B = NaN(2*N-1);
for k = 1:N
B([N+k-1,N-k+1],:) = A(k);
B(:,[N+k-1,N-k+1]) = A(k);
end
KSSV
KSSV 2016년 9월 19일

0 개 추천

B = ones(7) ;
B(1,:) = 4 ; B(2,2:end-1) = 3 ;B(3,3:end-2)=2 ;
B(:,1) = 4 ; B(2:end-1,2) = 3 ;B(3:end-2,3)=2 ;
B(:,end) = 4 ;B(2:end-1,end-1) = 3 ;B(3:end-2,end-2)=2 ;
B(end,:) = 4 ;B(end-1,2:end-1)=3 ;B(end-2,3:end-2)=2 ;

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

아직 태그를 입력하지 않았습니다.

질문:

2016년 9월 19일

편집:

2016년 9월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by