News & Events
[Machine Learning] 13. [실습] Octave/Matlab Tutorial
- 2019년 1월 11일
- Posted by: 인사이트캠퍼스
- Category: 금융/AI/IT 기사
앞에서 Octave를 설치하였으니 이제 간단한 사용법에 대해서 알아보겠습니다.
교수님의 강의에서 실제로 명령어들을 직접 실행하면서 보여주시기에 명령어를 순서대로 나열해서 정리하려고 합니다.
그러므로 직접 Octave에서 순서대로 실행을 하시면서 이해하시면 좋을 것 같습니다.
각 명령어 옆에 %는 주석이고 주석에 간단히 설명을 달아놓았습니다.
1. Octave Basic Operations
1 == 2 % 1과 2가 같은 값이면 true(1) 아니면 false(0)
1 ~= 2 % 1과 2가 같지 않으면 true(1) 아니면 false(0)
1 && 0 % and 연산
1 || 0 % or 연산
xor(1,0) % xor 연산
ps1(‘>> ‘); % 프롬프트 변경하기
a = 3
a = 3; % 세미콜론은 출력안함
b = ‘hi’;
a = pi
disp(a);
disp(sprintf(‘ 2 decimals : %0.2f, a))
format long % 이후 값을 long타입으로 출력
format short % 이후 값을 short타입으로 출력
A = [ 1 2; 3 4; 5 6] % A Vector 선언
V = [1 2 3]
V = [1; 2; 3;]
v = 1:0.1:2 % 1에서 2까지 0.1씩 증가하면서 생성
v = 1:6
ones(2,3)
C = 2*ones(2,3)
w = ones(1,3)
w = zeros(1,3) % 0의 값으로 생성(초기화)
w = rand(1,3)
rand(3,3)
w = -6 + sqrt(10) * (randn(1,10000));
hist(w)
hist(w,50)
eye(4) % Identity Vector
I = eye(6)
help eye % 도움말
help help
2. Moving Data Around
A = [1 2; 3 4; 5 6]
size(A)
sz = size(A)
size(sz)
size(A,1)
v = [1 2 3 4]
length(v)
length(A)
length([1;2;3;4;5])
pwd % 현재 디렉토리 위치
cd ‘C:\Users\ang’ % 디렉토리 변경
ls % 현재 디렉토리 파일 목록
load featuresX.dat % featuresX.dat 파일 불러오기
load priceY.dat
load(‘featuresX.dat’)
who % 현재 선언되어 사용이 가능한 변수 목록
featuresX % featuresX Matrix 보기
size(featuresX)
whos
v = priceY(1:10)
save hello.met v; % v matrix를 hello.met의 이름으로 파일 저장
clear % workspace 초기화
whos
who
load hello.met
v
save hello.txt v -ascii % text(ASCII) 파일로 저장
A = [1 2; 3 4; 5 6]
A(3,2)
A(2,:) % “:” means every element along that row/column
A(:,2)
A([1 3], : )
A(:,2) = [10;11;12]
A = [A, [100;101;102]]; % append another column vector to right
size(A)
A(:) % put all elements of A into a single vector
A = [1 2; 3 4; 5 6]
B = [11 12; 13 14; 15 16]
C = [A B] % matrix 조합하기
C = [A; B]
size(C)
[A, B]
3. Computing on Data
A=[1 2; 3 4; 5 6]
B = [11 12; 13 14; 15 16]
C = [1 1; 2 2]
A .*B % dot(.) 연산은 각 요소들끼리의 연산이 됨
A .^2
v = [1; 2; 3;]
1 ./v
1 ./A
log(v)
exp(v)
abs(v)
abs([-1; 2; -3])
-v % -1 * v와 동일
v + ones(length(v),1)
length(v)
ones(3,1)
v + ones(3,1) % 더하기 연산
v + 1
v
A
A’ % Matrix Transpose
(A’)’
a = [1 15 2 0.5]
val = max(a) % max 값
[val, ind] = max(a) % max인 값과 index
max(A)
a < 3 % 3보다 작은면 true
find(a < 3) % 3보다 작은 값 찾기
A = magic(3)
help magic
[r,c] = find(A >= 7) % r = row, c = column 의 index
A(2,3)
sum(a)
prod(a)
floor(a)
ceil(a)
rand(3)
max(rand(3), rand(3))
max(A,[],1) % A matrix에 대한 column(1)별 max값
max(A,[],2) % A matrix에 대한 row(2)별 max값
max(A)
max(max(A))
A(:)
max(A(:))
A = magic(9) % 9×9 matrix 임의값으로 생성
sum(A,1)
sum(A,2)
eye(9)
A.*eye(9)
sum(sum(A.*eye(9)))
sum(sum(A.*flipup(eye(9)))
flipup(eye(9)
A = magic(3)
pinv(A) % Inverse matrix
temp = pinv(A)
temp * A % Indentity matrix
Plotting Data
t=[0:0.01:0.98];
y1 = sin(2*pi*4*t);
plot(t,y1); % plot : 그래프로 표현
y2 = cos(2*pi*4*t);
plot(t,y2);
hold on; % 현재 그래프의 값들을 대기상태로 놓고 변경하기 위하여 사용 (hold off)
plot(t,y2,’r’);
xlabel(‘times’) % x축 label지정
ylabel(‘value’) % y축 label지정
legend(‘sin’, ‘cos’) % 범례 지정
title(‘my plot’) % 그래프 title 지정
cd ‘C:\users\ang’; print -dpng ‘myplot.png’
help plot
close % 그래프 창 닫기
figure(1); plot(t,y1); % 그래프 창 이름 지정
figure(2); plot(t,y2);
subplot(1,2,1); % Divides plot a 1×2 grid, access first element
plot(t,y1);
subplot(1,2,2);
plot(t,y2);
axis([0.5 1 -1 1]) % x축, y축의 눈금 제한 지정
help axis
clf; % 그래프 초기화
A = magic(5)
imagesc(A) % 값을 image로 표기
imagesc(A), colorbar, colormap gray;
A(1,2)
A(4,5)
imagesc(magic(15)), colorbar, colormap gray;
a=1, b=2, c=3 % comma chain
a=1; b=2; c=3;
4. Control Statements; for, while, if statement
v = zeros(10,1)
for i=1:10, % for 반복문
v(i) = 2^i;
end;
v
indices=1:10;
indices
for i=indices,
disp(i);
end;
v
i=1;
while i<=5, % while 반복문
v(i) = 100;
i=i+1;
end;
v
i=1;
while true,
v(i)=999;
i=i+1l
if i ==6, % if 조건문
break;
end;
end;
v
v(1)
v(1) = 2;
if v(1)==1, % if else 조건문
disp(‘The value is one’);
elseif v1) == 2,
disp(‘The value is two’);
else
disp(‘The value is not one or two’);
end;
squareThieNumber(5) % 현재 디렉토리에 .m파일이 있으면 해당 파일의 함수를 사용가능함
pwd
cd ‘C:\Users\ang\Desktop’
squareThisNumber(5)
addpath(‘C:\Users\ang\Desktop’) % path추가
[a,b] = squareAndCubeThisNumber(5);
a
b
x=[1 1; 1 2; 1 3]
y=[1; 2; 3;]
theta=[0;1];
j = costFunctionJ(x,y,theta)
theta=[0;0];
j = costFunctionJ(x,y,theta)
(1^2 + 2^2 + 3^2)/ (2*3)