벡터와 행렬을 사용할 때는 [대괄호]를 사용한다.
열벡터
세미콜론은 열을 바꾼다.
행벡터
세미콜론을 넣지 않고 쓰면 된다.
열 구분 방법 두가지
A. 세미콜론
B. 괄호 안닫고 줄바꾸기
인덱스로 불러오기
a(3)처럼 인덱스 활용 가능.
인덱스는 1부터 시작
전치행렬 만들기
b를 전치행렬로 만들고 싶으면 b'입력
벡터 덧셈
사이즈가 같은 k와 c의 덧셈
벡터 연산
벡터의 모든 성분에 덧셈하기
행벡터성분에 곱하기
b^2는 불가능하다. b*b가 불가능하므로.
b는 사이즈가 (1x3)이고 b는 (1x3)이므로 곱셈 불가.
(하지만 성분별로 곱하고 싶다면, 연산자를 달리해야 한다. *가 아니라 .*로)
그럼 벡터의 성분에 제곱을 하기 위한 방법은?
^라고 쓰지 말고 .^라고 써야 한다!
이런 dot는 아주 중요한 역할을 한다.. 성분별로 제곱 관련할때 쓰는 .^를 꼭 기억해주자.
굉장히 강력한 Matlab 기능이다.
벡터 성분 나누기 | 그리고 .을 사용한 연산 -
사이즈가 같은 벡터에서 성분별로 연산하기
이런 에러가 나온다는거!
x/3은 가능하지만, 3/x라고 쓰면 안된다.
이런 연산을 하려면 역시 3./x라고 해야 한다.
즉, 성분별로 제곱, 나누기, 곱하기를 할 때에는 .를 사용한 연산자를 사용하자.
.^ (제곱)
./ (나누기)
.* (곱하기)
사이즈가 (1x3), (1x3)인 것 끼리는 ^, /, * 연산이 되지 않는다.
벡터 성분끼리 연산하려면 .을 사용한 연산자를 사용해야 한다.
(참고: .+나 .-는 보통 사용하지 않는다. 위에 세가지만 기억하자.
사이즈가 같은 경우 b-c와 b+c같은 벡터연산은 가능하지만, b/c, b^c, b*c는 사이즈가 같을 때 연산이 불가능하므로.. 사이즈가 같다면 ./ .^ .*연산자를 사용한다.)
내적의 방법 (dot product)
이렇게 matlab에서는 내적을 구하는 함수 dot(x,y)도 존재한다.
(외적 : cross(x,y))
size와 length
일반적으로 size는 행렬에서 사용하고, length는 벡터에서 사용한다.
참고: 2x3인 행렬을 length에 넣으면 6이라는 값이 나온다.
size의 결과는 (2x3일 경우) 2 3 이런식으로 나온다.
기타: 벡터에서 자주 사용하게 될 기능
max(x) 최대성분 값
min(x) 최소성분 값
sum(x) 성분 합
squrt(x) 모든 성분을 제곱근
norm(x) 벡터 크기 | sqrt(sum(b.^2))의 값과 같다. norm이라는 프로그램 안에 이런 식이 들어있는 격임. 참고: norm.m파일이 존재하고 있다.
norm함수에는 두 가지가 있다.
1-norm과 2-norm.
기본값은 2-norm이고 sqrt(sum(b.^2))기능이다.
1-norm은 sum(abs(b))이다.
<norm 정리>
1-norm: 성분의 절대값의 합 sum(abs(x))
2-norm: 벡터의 크기 sqrt(sum(b.^2))
infinite norm: 성분의 절대값 중 최대값 max(abs(x))
ㄴ얘는 norm(x, inf) 따위로 쓴다.
'수학' 카테고리의 다른 글
[Matlab] 함수에 벡터(행렬)값 대입 | 연산 복습 (0) | 2021.03.16 |
---|---|
[Matlab] 콜론(:)에 대하여 | 등차수열벡터 (0) | 2021.03.15 |
[Matlab] 변수 관련 명령어 | 변수 확인, 삭제, 지우기, 저장하기(save) (0) | 2021.03.11 |
[Matlab] 난수함수/ 난수행렬 | 정수행렬 만들기 | 특정 행렬 기억하기, 저장하기 (0) | 2021.03.11 |
[Matlab] 실수 한계 (realmax, realmin) / 복소수 연산 (0) | 2021.03.11 |