이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
diag
대각 행렬을 생성하거나 행렬의 대각선 요소 가져오기
설명
예제
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
입력 인수
대각선 요소로, 벡터로 지정됩니다. v
가 N
개 요소를 가진 벡터인 경우 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
는 범위 내에 있습니다. 예를 들어 n이 m보다 큰 행렬의 경우 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)
인 요소로 구성됩니다.
팁
행렬의
trace
는sum(diag(A))
와 동일합니다.
확장 기능
사용법 관련 참고 및 제한 사항:
k
를 제공할 경우 그 값은 실수형 정수 스칼라 값이어야 합니다.가변 길이 벡터(1×: 또는 :×1)인 가변 크기 입력값에 대해
diag
는 다음과 같이 동작합니다.입력값을 벡터로 취급
지정한 대각선을 따라 입력 벡터가 있는 행렬 반환
가변 길이 벡터가 아닌 가변 크기 입력값에 대해
diag
는 다음과 같이 동작합니다.입력값을 행렬로 취급
런타임에 입력값으로 벡터를 받을 수 없음
가변 길이 벡터 반환
입력값이 가변 크기(:m×:n)이고 런타임에 0×0 형태인 경우 출력값은 0×0이 아니라 0×1입니다. 하지만 입력값에 크기가 0×0인 상수가 포함되어 있으면 출력값은
[]
입니다.가변 길이 벡터(1×: 또는 :×1)가 아닌 가변 크기 입력값의 경우
diag
는 입력값을 대각 벡터를 추출할 행렬로 취급합니다. 입력 배열이 런타임에 벡터인 경우에도 이와 같이 동작합니다.diag
가 1×: 또는 :×1이 아닌 가변 크기 입력값으로 행렬을 만들도록 하려면 다음을 사용하십시오.diag(x)
대신diag(x(:))
diag(x,k)
대신diag(x(:),k)
사용법 관련 참고 및 제한 사항:
k
를 제공할 경우 그 값은 실수형 정수 스칼라 값이어야 합니다.가변 길이 벡터(1×: 또는 :×1)인 가변 크기 입력값에 대해
diag
는 다음과 같이 동작합니다.입력값을 벡터로 취급
지정한 대각선을 따라 입력 벡터가 있는 행렬 반환
가변 길이 벡터가 아닌 가변 크기 입력값에 대해
diag
는 다음과 같이 동작합니다.입력값을 행렬로 취급
런타임에 입력값으로 벡터를 받을 수 없음
가변 길이 벡터 반환
입력값이 가변 크기(:m×:n)이고 런타임에 0×0 형태인 경우 출력값은 0×0이 아니라 0×1입니다. 하지만 입력값에 크기가 0×0인 상수가 포함되어 있으면 출력값은
[]
입니다.가변 길이 벡터(1×: 또는 :×1)가 아닌 가변 크기 입력값의 경우
diag
는 입력값을 대각 벡터를 추출할 행렬로 취급합니다. 입력 배열이 런타임에 벡터인 경우에도 이와 같이 동작합니다.diag
가 1×: 또는 :×1이 아닌 가변 크기 입력값으로 행렬을 만들도록 하려면 다음을 사용하십시오.diag(x)
대신diag(x(:))
diag(x,k)
대신diag(x(:),k)
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
diag
함수는 GPU 배열을 완전히 지원합니다. GPU에서 이 함수를 실행하려면 입력 데이터를 gpuArray
(Parallel Computing Toolbox)로 지정하십시오. 자세한 내용은 GPU에서 MATLAB 함수 실행하기 (Parallel Computing Toolbox) 항목을 참조하십시오.
이 함수는 분산 배열을 완전히 지원합니다. 자세한 내용은 분산 배열을 사용하여 MATLAB 함수 실행 (Parallel Computing Toolbox) 항목을 참조하십시오.
버전 내역
R2006a 이전에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)