Main Content

diag

대각 행렬을 생성하거나 행렬의 대각선 요소 가져오기

설명

D = diag(v)는 주대각선에 벡터 v의 요소를 가진 정사각 대각 행렬을 반환합니다.

예제

D = diag(v,k)k번째 대각선에 벡터 v의 요소를 배치합니다. k=0은 주대각선을 나타내고 k>0은 주대각선 위쪽이고 k<0은 주대각선 아래쪽입니다.

예제

x = diag(A)A의 주대각선 요소로 구성된 열 벡터를 반환합니다.

예제

x = diag(A,k)Ak번째 대각선 요소로 구성된 열 벡터를 반환합니다.

예제

예제

모두 축소

1×5 벡터를 생성합니다.

v = [2 1 -1 -2 -5];

diag를 사용하여 주대각선에 v 요소를 가진 행렬을 만듭니다.

D = diag(v)
D = 5×5

     2     0     0     0     0
     0     1     0     0     0
     0     0    -1     0     0
     0     0     0    -2     0
     0     0     0     0    -5

첫 번째 상부 대각선(k=1)에 v의 요소를 가지는 행렬을 만듭니다.

D1 = diag(v,1)
D1 = 6×6

     0     2     0     0     0     0
     0     0     1     0     0     0
     0     0     0    -1     0     0
     0     0     0     0    -2     0
     0     0     0     0     0    -5
     0     0     0     0     0     0

그 결과로 6×6 행렬이 생성됩니다. 입력값으로 길이가 n인 벡터를 지정하는 경우 diag는 크기가 n+abs(k)인 정사각 행렬을 반환합니다.

6×6 확률 행렬의 주대각선 요소를 가져옵니다.

A = randi(10,6)
A = 6×6

     9     3    10     8     7     8
    10     6     5    10     8     1
     2    10     9     7     8     3
    10    10     2     1     4     1
     7     2     5     9     7     1
     1    10    10    10     2     9

x = diag(A)
x = 6×1

     9
     6
     9
     1
     7
     9

A의 첫 번째 하부대각선(k=-1)상의 요소를 가져옵니다. 그 결과로 주대각선보다 요소가 한 개 더 적어집니다.

x1 = diag(A,-1)
x1 = 5×1

    10
    10
     2
     9
     2

diag를 두 번 호출하면 원본 행렬의 대각선 요소로 구성된 대각 행렬이 반환됩니다.

A1 = diag(diag(A))
A1 = 6×6

     9     0     0     0     0     0
     0     6     0     0     0     0
     0     0     9     0     0     0
     0     0     0     1     0     0
     0     0     0     0     7     0
     0     0     0     0     0     9

입력 인수

모두 축소

대각선 요소로, 벡터로 지정됩니다. vN개 요소를 가진 벡터인 경우 diag(v,k)는 차수 N+abs(k)의 정사각 행렬입니다.

diag([])는 빈 행렬 []을 반환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
복소수 지원 여부:

입력 행렬입니다. ndims(A) > 2인 경우 diag는 오류를 반환합니다.

diag([])는 빈 행렬 []을 반환합니다.

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
복소수 지원 여부:

대각선 번호로, 정수로 지정됩니다. k=0은 주대각선을 나타내고 k>0은 주대각선 위쪽이고 k<0은 주대각선 아래쪽입니다.

m×n 행렬의 경우 k는 범위 (m+1)k(n1) 내에 있습니다. 예를 들어 nm보다 큰 행렬의 경우 k=0인 주대각선은 인덱스가 (1,1), (2,2), ..., (m,m)인 요소로 구성됩니다. k=1인 주대각선 위쪽은 인덱스가 (1,2), (2,3), ..., (m,m+1)인 요소로 구성됩니다. k=-1인 주대각선 아래쪽은 인덱스가 (2,1), (3,2), ..., (m,m-1)인 요소로 구성됩니다.

Diagonal numbers k=0, k>0, and k<0

  • 행렬의 tracesum(diag(A))와 동일합니다.

확장 기능

버전 내역

R2006a 이전에 개발됨

참고 항목

| | | | | |