반응형
39.특이값 분해(singular value decomposition), svd함수
특이값 분해는
어떤 행렬을
세 행렬의 곱으로 분해하는 것입니다. 말 그래도 분해에요.
matlab에서는 svd라는 함수가 사용됩니다.
x라는 행렬을 정의하고 함수에 넣습니다. 아래와 같은 형태로 넣어주셔야 해요.
[U,S,V] = svd(x)
U와 V는 unitary 행렬입니다. 자기 자신의 transpose와 곱하면 항등행렬이 나오는 행렬을 unitary 행렬이라고 합니다.
아래 수식이 성립하죠.
U*U'=I
V*V'=I
S는 diagonal matrix입니다. 예를들면 아래와 같은 행렬이에요.
S =
16.8481 0 0
0 1.0684 0
0 0 0.0000
중앙대각선에만 값이 존재합니다.
분해의 결과를 말씀드릴게요.
아래 수식이 성립합니다.
X=U*S*V'
반응형
'MATLAB 코딩 > 기초' 카테고리의 다른 글
[matlab 공부하자] 41.for 문의 i를 문자로 이용하는 방법 (0) | 2019.07.04 |
---|---|
[matlab 공부하자] 40.matlab에서 txt 파일 저장하는 방법(fopen, fprintf) (0) | 2019.07.03 |
[matlab 공부하자] 38.행렬, 문자열을 원소로 갖는 cell 함수를 사용해보자. (0) | 2019.07.03 |
[matlab 공부하자] 37.영어 문장을 전부 소문자로 만드는 함수와 대문자로 만드는 함수 (lower,upper) (0) | 2019.07.03 |
[matlab 공부하자] 36.전체 문장에서 원하는 문자가 들어있는지 찾는 함수 (strfind) (0) | 2019.07.03 |
댓글