2013-03-28 3 views
0

행렬 D의 대각선을 1,2,3,4으로 대체하는 것이 재미 있습니다.행렬의 대각선을 대체하십시오

D(eye(4)==1) = 1:4 

또는 그것을 일반화 :

A=[1,2,3,4,2,3,4,5; 3,4,5,6,4,5,6,7]; 
D=[A;A]; 
D=[D D]; % size of matrix [4x16] % 
+2

는 u는 대각선으로 무엇을 의미합니까? D는 정사각형이 아닌 행렬입니다. – Kishore

+0

@Kishore, [주 대각선] (http://en.wikipedia.org/wiki/Main_diagonal)은 비 - 정방 행렬에 대해서도 정의됩니다. –

답변

2

1로 1을 시작 증가 정수로 주 대각선을 설정하려면 : 이 매트릭스 D입니다

n = min(size(D)); 
D(eye(n)==1) = 1:n; 

참고 여기에 ==1은 단위 행렬 인 eye(n)의 출력을 논리 유형으로 변환합니다.

편집 :

이 모든 대각선으로 무엇을 의미하는지에 그냥 추측하지만 여기 간다 :

n = size(D,1); 
m = size(D,2); 
I = repmat(eye(min([n,m])), ceil(n/m), ceil(m/n)); 
I = I(1:n, 1:m)==1 
d = repmat(1:min([n,m]), 1, max([ceil(n/m), ceil(m/n)])); 
d = d(1:max(m,n)); 
D(I) = d 
+0

안녕하세요,이 행렬이 대각선 1 개만 바뀌고 행렬의 모든 대각선을 변경하고 싶습니다. – cenging

+0

다른 대각선은 무엇입니까? 수동으로 계산 된 예제를 제공하고 질문에 추가 (원래 질문을 편집)하여 의미를 알 수 있도록하십시오. – Dan

+0

해결되었습니다. 고마워요. 나는 너의 도움에 매우 감사한다. – cenging