[컴] 내가 필요한 octave 명령어

octave command cheat sheet / 커맨드 / 함수 / 명령어




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


작성중...



댓글 없음:

댓글 쓰기