예전 기록

Matlab Tip

hhy8001 2010. 5. 16. 13:32

% ' : Transpose matrix (complex matrix(unitary matrix)에서는 Hermitian transpose 반환)

 

% all : vector의 모든 원소가 참일 경우 1 반환

 

% any : vector의 1개 이상 원소가 참일 경우 1 반환

   * all, any는 열 연산

 

% clc : 화면정리

 

% computer : computer type 반환

      예) [C, MaxSize] = computer --> C는 computer type, MaxSize는 Maximum element size

 

% det : determinant(판별식) 반환

 

% diag(A) : A matrix의 diagonal matrix 반환

 

% dir 또는 ls : directory내 file list 반환

 

% error('message') : 에러시 'message' 뜨게함

 

% fix, floor : 소수점 이하 내림

 

% flipud : 행의 순서를 반대로 바꿈

 

% format : 화면 출력형식 지정

    - format bank : 소수 2째자리까지 출력 ex) 1.33

    - format compact : 공백 지움

    - format hex : hexagonal 표현

    - format long : 자세히 출력 ex) 1.3333333333

    - format rat : 분수식 표현 ex) 1/3

    - format short : default ex) 1.3333

    - format short e : 지수형 ex) 1.3333e+000

 

% grid on / grid off : 그래프에서 격자를 보여주거나 없앰

 

% if문에서 논리식이 array이면 모든 원소가 true여야 true로 인정

 

% inf : 무한대

 

% inv : inverse matrix(역행렬) 반환

 

% isfinite : 유한크기 또는 NaN이 아닌 곳에 1 반환

 

% isinf : 무한크기 값에 대해 1 반환

 

% isnan : NaN이 위치한 곳에 1 반환

 

% more on : 한 개 또는 한 페이지의 command window 까지 display

 

% NaN : 값없음 예) 0/0 또는 inf/inf

 

% nargin : 함수의 입력매개변수 개수

 

% narout : 함수의 출력매개변수 개수

 

% pi : 원주율

 

% prod : vector 원소의 모든 곱 반환

 

% rem(A, B) : A를 B로 나눈 나머지

 

% try / catch / end : try중 error 발생시 catch 이후로 넘어감

 

% warning('message') : 'message' 출력후 다음 명령어 수행

 

% xor : exclusive OR

 

% eval : 문자열 수식 계산

   ex) x=1; y='x+1'; z=eval(y) ---> z = 2










 

####  Array / Multi-dimensional array ####

Matlab은 2차원 이상의 array 지원

구성할 수 있는 요소로는 numeric, character, cell, structure 등

# 구성방식

  - 일반 2차원 배열 만드는 방식으로 dimension 확장

     예) A=[1,2;3,4]; A(:,:,2)=[5,6;7,8];

           A(1,1,2) = 3;

# 다차원 배열을 만들어주는 함수

   - ones(m,n,l,..) : mXnXlX..의 1로 구성된 다차원 배열 생성

   - zeros : 0으로 구성된 배열

   - rand : 0~1사이 난수

   - randn : 표준정규분포의 난수

   - repmat(A,[m,n,l..]) : A를 각 dimension에 m번, n번, l번... 반복하는 배열 생성

   - cat(dim, A, B, C,..) : A,B,C..를 합성하여 차원이 dim인 새로운 배열로 합성

   - reshape(A,[m,n]) : A를 [m,n] 차원의 배열로 재배열 *열을 기준으로 재배열 실시

 

#### String ####

문자열을 나타내는 데이터 형식

# 형 변환 함수

   - double : double 형으로 변환

   - char : chracter 형으로 변환

   - int2str : integer를 string으로 변환

   - hex2dec, dec2hex, bin2dec : 2진법, 10진법, 16진법 사이의 변환

      * 변환시 hex, bin는 string으로 인식

# 문자열 합성 : []로 간단하게 합성

 

#### Cell Array ####

서로 다른 데이터 형식/크기을 저장할 수 있는 메커니즘.

# 생성방법

   - 중괄호 사용 : A{1}=[1,2,3]; A{1,2}='abcde';

   - cell 함수 사용 : A=cell(1,2) : cell array를 먼저 만듦

# Cell array 확인

   - cellplot(CellArray,'legend') :

      * 그냥 cell명+enter 하여도 cell에 대한 text의 설명 출력

# Cell의 첨자

  - () : pointer를 참조 예)A(1,1) : (1,1)의 pointer

  - {} : 내용을 참조 예)A{1,1} : (1,1)의 값

# Cell 지우기 : empty cell {}로 지우면 됨

# deal 함수

   - [A,B,C,..] = deal(X,Y,Z,...) : A=X, B=Y,...

   - [A,B,C,..] = deal(X{:}) : A=X{1},B=X{2},..

# 콜론(:) 사용법

   - matrix와 같이 콜론(:)으로 대입/변환 등을 하지 못함

   예) X{:}하면 X의 모든 List를 볼 수는 있음

       변환, 대입시 []와 deal함수 사용 : [X{:}] = deal(5);

 

#### Struct ####

Database 등을 목적으로, cell의 숫자를 Text로 쉽게 access할 수 있도록 하는 array

Struct 및 Field는 "."으로 구분, Struct명 이후 (number)로 object 인식

예) a(1).name : a라는 struct name의 첫번째의 name Field

# Struct 구성

  - field 할당문 사용 : a(1).name='Tom'

  - struct 함수 이용 : struct('필드1','값1','필드2','값2'...)

# Field 지우기 : rmfield 함수 사용

   예) A = rmfield(A,'a') : A에서 'a' Field 지움

# fieldnames : field name 확인

# deal 함수

  - [A,B,C,..] = deal(X,Y,Z,..) : A=X, B=Y,..

  - [A,B,C,..] = deal(X,field) : A=X(1).field, B=X(2).field,...

  - [Y{:}] = deal(X.field) : Y{1}=X(1).field, Y{2}=X(2).field,..

  - [X.field] = deal(Y)

# 콜론(:) 사용법

  - struct도 cell과 같이 []를 통해 대입, 변환, 사용 가능

     예) A(1).age = 10; A(2).age = 20;

          mean([A(:).age]) or mean([A.age]) : 나이에 대한 평균

 

여기서 reshape 함수가 쓸만했다-ㅎ


반응형