Main Content

isdiag

행렬이 대각 행렬(Diagonal Matrix)인지 확인

설명

tf = isdiag(A)A대각 행렬이면 논리값 1(true)을 반환합니다. 그렇지 않으면 논리값 0(false)을 반환합니다.

예제

예제

모두 축소

4×4 단위 행렬을 만듭니다.

I = eye(4)
I = 4×4

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

행렬이 대각 행렬인지 테스트합니다.

isdiag(I)
ans = logical
   1

0이 아닌 요소가 모두 주대각선에 있으므로 이 행렬은 대각 행렬입니다.

주대각선과 첫 번째 대각선에 0이 아닌 요소가 있는 행렬을 만듭니다.

A = 3*eye(4) + diag([2 2 2],1)
A = 4×4

     3     2     0     0
     0     3     2     0
     0     0     3     2
     0     0     0     3

행렬이 대각 행렬인지 테스트합니다.

isdiag(A)
ans = logical
   0

주대각선 위에 0이 아닌 요소가 있으므로 이 행렬은 대각 행렬이 아닙니다.

A의 주대각선 요소로 새 행렬 B를 만듭니다.

B = diag(diag(A));

B가 대각 행렬인지 테스트합니다.

isdiag(B)
ans = logical
   1

주대각선 위 또는 아래에 0이 아닌 요소가 없기 때문에 이 행렬은 대각 행렬입니다.

입력 인수

모두 축소

입력 배열. isdiagA의 차원이 2차원을 넘을 경우 논리값 0(false)을 반환합니다.

데이터형: single | double | logical
복소수 지원 여부:

세부 정보

모두 축소

대각 행렬

주대각선 위와 아래에 있는 모든 요소가 0인 경우 행렬은 대각 행렬이 됩니다. 주대각선에 있는 요소도 개수에 상관없이 0이 될 수 있습니다.

예를 들어, 다음 4×4 단위 행렬은 대각 행렬입니다.

I4=(1000010000100001)

대각 행렬은 항상 그렇지는 않지만 일반적으로 정사각 행렬입니다.

  • isdiag가 논리값 1(true)을 반환하는 대각 행렬을 만들려면 diag 함수를 사용하십시오.

  • 함수 isdiag, istriu, istril은 함수 isbanded의 특별한 경우로서, 적절히 정의된 상부 대역폭과 하부 대역폭을 사용하여 모든 동일한 테스트를 수행할 수 있습니다. 예를 들면 isdiag(A) == isbanded(A,0,0)과 같습니다.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2014a에 개발됨

참고 항목

| | | | | |