의 Matlab에 A
행렬이 있습니다.Matlab 코드를 벡터화하여 행렬의 특정 인덱스를 선택합니다.
N=5;
A=[1 2 3 4;
5 6 7 8;
9 10 11 12;
13 14 15 16;
17 18 19 20];
나는 어떤 방법으로 A
의 요소를 다시 정렬합니다. 특히 I는 차원의 행렬 B
을 만들려 (N-1)xN
되도록 : i=1,...,N
위한
,
B(:,i)
는
1) 제 i-1
A
의 i-1
번째 열의 요소
2 수집) N-i
의 i
번째 열의 요소는 A
입니다.
i=1
의 경우 A
의 i-1
열이없고 따라서 1)을 건너 뜁니다. 마찬가지로 i=N
의 경우 A
의 i
열이 없으므로 2)는 건너 뜁니다. 예에서
이 코드는 내가 원하는 것을
B=[5 1 2 3 4
9 10 6 7 8
13 14 15 11 12
17 18 19 20 16];
위. 나는 당신의 도움을 벡터 방식으로 효율적으로 요구하고 있습니다.
B=zeros(N-1,N);
for i=1:N
if i>1 && i<N
step1=A(1:i-1,i-1);
step2=A(i+1:N,i);
B(:,i)=[step1;step2];
elseif i==1
B(:,i)=A(i+1:N,i);
elseif i==N
B(:,i)=A(1:i-1,i-1);
end
end