help
help <command> 를 하면 자세한 도움말을 볼 수 있다.comment 주석
%prompt 를 >> 로 바꿀때
PS1('>> ');; 세미콜론
세미콜론(;) 을 끝에 붙이면 output 을 보여주지 않는다.disp()
python 의 print() 같은 함수sprintf()
>> a= pi >> disp(sprint('test %0.2f', a)) 3.14
a 를 long type 으로 보여주고 싶을때
>> format long >> a 3.141592...
matrix 행렬
A = [1 2 ; 3 4; 5 6]한 row 을 만드는데, column 을 '1' 에서 시작해서 0.1 씩 증가해서 2까지 만든다.
>> v = 1:0.1:2 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0
한 row 을 만드는데, column 을 '1' 에서 시작해서 6까지 만든다.
>> v = 1:6 1 2 3 4 5 6
transpose
X.'
ones(), zeros(), rand(), randn()
randn 은 mean 이 0 인 Gaussian distribution(가우시안 분포) 값으로 random 값을 정해준다.
>> ones(2, 3) % 2x3 matrix ans = 1 1 1 1 1 1 >> 2*ones(2, 3) % 2x3 matrix ans = 2 2 2 2 2 2
값에 대한 historam 을 그릴 때
>> w = randn(1,1000) >> hist(w) >> hist(w, 50) % 중심부분을 50으로..
eye()
identity matrix를 만들어준다.>> eye(3) ans = 1 0 0 0 1 0 0 0 1
size(), length()
>> A = [1 2 ; 3 4 ; 5 6] >> size(A) 3 2 >> size(A,1) % row-count 3 >> length(A) 3 >> v = [1 2 3 4 5 ] >> length(v) 5
shell 명령어 가능
>> ls >> pwd >> cd
variable 관련
variable정보
현재 scope 에 있는 variable 을 보여준다. whos 가 좀 더 자세한 정보를 준다.>> who >> whos
파일에 있는 data 를 불러오기
>> load('myLoadedData.dat')
unload
변수를 unload 할 수도 있다.>> clear myLoadedData
variable 을 file 로 저장
>> save newFile.dat myLoadedData >> save newFile.dat myLoadedData --ascii
첫 10개의 element 를 가져오는 방법
>> v = myLoadedData(1:10) >> myLoadedData(1,3) % 1 row, 3 col >> myLoadedData(1,:) % all elements in 1 row
값을 합치는 법 concatenation
space 는 col 을 추가하는 것이고 ; 은 row를 추가하는 것이다.>> myLoadedData([1 3], :) >> A = [myLoadedData, [1 2 3]] % 기존의 행렬에 새로운 값을 추가하는 것 >> A = [myLoadedData, myLoadedData ] >> A = [myLoadedData; myLoadedData ] >> A(:) %모든 값을 하나의 column 에서 보여준다.
계산
A .* B , A ./B
각 위치의 요소들끼리 곱한다.. (point) 이 element wise 연산이라는 뜻으로 보면 된다.
2 .* B
각 element 에 2를 곱한다.기타함수들
- log(v)
- expr(v)
- abs(v)
- sum(v)
- sum(A, 1) % 각 col 별로 sum 구한다
- sum(A, 2) % 각 row 별로 sum 구한다
- sum( sum(A .* eye(3)) ) % 대각선 element 의 합
- sum( sum(A .* flipud(eye(3))) ) % 반대대각선 element 의 합
- pinv(A)
- prod(v) % 곱하기
- floor(v)
- ceil , ceiling(v)
- max()
- find(a > 3)
- magic(3)
[val, index] = max(A)
C = max(A, B)각 element 들의 max 값으로 새로운 행렬을.
max(A, [], 1)
각 row 에서 최대값
max(A, [], 2)
각 col 마다 최대값
a = [1 2 3 4 5]
a > 3
각 element와 비교해서 true 는 1, false 는 0 으로 보여준다.find( a > 3 )
을 하면 해당하는 element 의 index 를 알려준다.[rows, cols] = find( A>3 )
행렬의 element 의 index를 return 해준다.
A = magic(3)
3x3 matrix 를 만들어주는데 가로, 세로, 대각선의 값이 같은 행렬을 만들어준다. 예제용 행렬로 쓰기에 좋다.그래프 그리기
참고로 모든 명령어는 help <명령어> 를 통해 더 자세한 명령어 사용법을 알 수 있다.
> t = [0:0.01:0.98] % 0~0.98 까지 0.01 씩 증가해서 > y1 = sin(2*pi*4*t); > plot(t, y1) % t 는 x 축이 되고, y1 은 y 축의 값 > y2 = cos(2*pi*4*t); > hold on; % 그려놓은 그래프를 지우지 않고 붙잡아 둔다. > plot(t, y2, 'r'); % 그래프를 그려준다. 'r' 은 red , 빨간색으로 그려준다. > plot(t, y2, 'b'); > xlabel('time'); % label 을 붙여준다. > ylabel('value') > legend('sin', 'cos') % legend 를 추가 > title('title') % title 을 추가
> cd f: > print -dpng 'myimage.png' % plot 을 image 로 저장해준다. > close % plot 창을 닫는다.
> figure(1); plot(t, y1); % figure(1) 은 창을 하나 띄우고, 그 창이 active 된다. > figure(2); plot(t, y2); > subplot(2,2,1); % plot 을 2x2 의 격자로 나누고, 그중에 index 1 의 녀석을 사용한다. % 인덱스는 가장 1x1 = 1, 1x2 = 2, 2x1=3, 2x2=4 가 된다. > plot(t, y1) > plot(t, y2) > subplot(2,2,2) > plot(t,y2) > axis([0.5 1 -1 1]) % x 축의 범위를 0.5 ~ 1 , y축의 범위를 -1 ~ 1 로 한다.
> A = magic(5) A = 17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9 > imagesc(A) % matrix A 값을 image 로 표현 > colorbar % 값에 대한 색을 표현해주는 colorbar 를 옆에 보여줌 > colormap gray; % colormap 중에 gray 를 선택 > A(1,2) ans = 24 > imagesc(magic(15)), colorbar, colormap gray; % ';' 대신에 ',' 를 사용할 수 있다.
함수정의
[X mu sigma] = featureNormalize(X); % featureNormalize.m function [X_norm, mu, sigma] = featureNormalize(X) X_norm = [] sigma = [] mu = [] % disp(columns(X)) for i=1:columns(X) col = X(:,i); mu = [mu, mean(col)] sigma = [sigma, std(col)]; X_norm = [X_norm, (col.-mean(col))./std(col)]; end end
% better answer X_norm = [] mu = mean(X) sigma = std(X) % disp(columns(X)) for i=1:size(X,2) col = X(:,i); X_norm(:,i) = (col-mu(i))/sigma(i); end
작성중...
댓글 없음:
댓글 쓰기