1. 주석
#
%
한 줄 주석
%{
⋯
%}
여러 줄 주석, % 대신 # 써도 됨
2. 문자열
문자열은 작은 따옴표(')나 큰 따옴표(")로 감싸면 된다.
3. 크기
size() 함수와 length() 함수가 있는데 약간 다르다.
둘 다 행렬 또는 벡터의 차원을 반환하지만 size()와 달리 length()는 차원을 지정할 수 없고 가장 긴 차원을 반환한다.
LetAis3×4matrixandvis5×1vector
size(A,1)=3
size(A,2)=4
length(A)=4
행렬에서 1차원은 행, 2차원은 열이다.
rows() 함수와 cols() 함수는 각각 주어진 행렬의 행 길이, 열 길이를 반환한다.
즉 row(A)는 size(A,1)과 같고 cols(A)는 size(A,2)와 같다.
3. 프롬프트 변경

위와 같이 바꿀 수 있다. 다른 함수들과 달리 이름이 대문자다.
PS1()의 매개변수에 새롭게 설정할 프롬프트명을 문자열로 주면 된다.
기본 프롬프트는 명령어를 입력할 때마다 octave: 옆에 숫자가 늘어난다.
4. 행렬 연산
1. 콜론(:)
A=[12345678910111213141516]
A(2,:)
A(:,1)
A([13],:)
A(1:3,:)
A(:,1:3)
A(:)

주의할 점은 A(:)의 행 순이 아닌 열 순으로 붙는다는 것.
즉 첫 번째 열 밑에 두 번째 열이 붙고, 그 밑에 세 번째 열이 붙는 식으로 전체 요소를 열 벡터로 만든다.
2. 요소 단위 연산
기본 연산자 (+,−,∗,/,^) 앞에 .을 붙이면 해당 연산이 각 요소에 대해 개별적으로 이루어진다.
예를 들어
A=[1234]
에 대해
A.^2
=[1^22^23^24^2]
$\;=\;\begin{bmatrix} 1 & 4 \\ 9 & 16 \end{bmatrix}$
이다.
[1234]×[1234]=[7101522]가 아니다.
또한 행렬끼리도 연산이 가능한데, 예를 들면 다음과 같다.
A=[1234],B=[4567]
A.+B=[1+42+53+64+7]=[57911]
<행렬 - 스칼라>

<행렬 - 행렬>

cf.
A.^B
=[1^42^53^64^7]
$\;=\;\begin{bmatrix} 1 & 32 \\ 729 & 16384 \end{bmatrix}$
5. 그 밖에 행렬 관련 함수
eye(n)
n×n 항등 행렬을 만든다.
항등 행렬로 쓰이는 I의 발음과 영단어 eye의 발음이 같은 걸 이용한 유머인 것 같다...
magic(n)
n×n 마방진 행렬을 만든다.
사실 마방진 자체가 필요한 경우는 거의 없고 정방행렬을 만들 때 쓰는 편이다.
find(CONDITION)
주어진 조건에 맞는 인덱스를 반환한다.

find(A>=10)
A를 열 기준으로 늘어놨을 때 인덱스를 기준으로 10 이상의 요소의 인덱스를 반환한다.
즉 A(:)와 같이 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15, 4, 8, 12, 16에서
13, 10, 14, 11, 15, 12, 16의 인덱스인 4, 7, 8, 11, 12, 15, 16이 열 벡터로 반환된다.
[rc]=find(A>=15)
r에는 주어진 조건에 맞는 요소의 행 인덱스가, c에는 열 인덱스가 열 벡터의 형태로 할당된다.
A에서 15보다 크거나 같은 요소는 15와 16이고 이들의 인덱스는 각각 (4,3), (4,4)다.
따라서 r=[44], c=[34]다.
sum(A)
주어진 행렬의 합을 반환하며, size() 함수처럼 차원을 지정해줄 수 있다.
또한 행렬의 전체 요소 합은 sum(sum(A))로 구할 수 있다.

sum(A)
모든 행의 합을 반환한다.
즉
[1234]
+[5678]
+[9101112]
+[13141516]
=[28323640]
가 된다.
sum(A,1)
첫 번째 차원의 합을, 즉 행의 합을 반환한다.
sum(A,2)
두 번째 차원의 합을, 즉 열의 합을 반환한다.
[15913]+[261014]+[371115]+[481216]=[10264258]
prod(A)
주어진 행렬의 곱을 반환하며, size() 함수처럼 차원을 지정해줄 수 있다.
또한 행렬의 전체 요소 합은 prod(prod(A))로 구할 수 있다.
기타 사용법은 sum()과 동일하다.
ceil(A),floor(A)
A의 모든 요소를 올림, 버림한 결과를 반환한다.

max(A)
각 열에서 가장 큰 요소를 행렬로 반환한다.

1열의 최대값은 8, 2열의 최대값은 9, 3열의 최대값은 7이므로 반환은 [897]이 된다.
행렬 전체의 최대값은 max(max(A))로 구할 수 있다.
'Machine Learning' 카테고리의 다른 글
Octave: 제어문 (0) | 2021.02.27 |
---|---|
Octave: 기본적인 연산 (0) | 2021.02.23 |