MATLAB

MATLAB 셀(cell) 배열 정의 및 호출하기, 관련 함수 정리

qlsenddl 2021. 3. 9. 16:53
728x90

 MATLAB에서 셀 배열은 기존의 수치 배열(벡터, 행렬 등)과 다르게 배열의 각 원소에 문자 자료형, 숫자 자료형 심지어는 함수까지 저장할 수 있는 자료형이다.

 

1. 셀 배열 정의하기

원하는 셀 배열 예시

array1 array2
[1, 2, 3] [3, 2, 1; 1, 2, 3]

1) 할당 명령문 사용

방법 1: 배열명(a, b) = {넣을 내용}

ex>

A(1, 1) = {'array1'};

A(1, 2) = {'array2'};

A(2, 1) = {[1, 2, 3]};

A(2, 2) = {[3, 2, 1; 1, 2, 3]};

 

방법 2: 배열명{a, b} = 넣을 내용

ex>

A{1, 1} = 'array1';

A{1, 2} = 'array2';

A{2, 1} = [1, 2, 3];

A{2, 2} = [3, 2, 1; 1, 2, 3];

 

2) cell 함수 사용

변수명 = cell(a, b): a×b 셀 배열 생성

ex>

3) 비어 있는 셀(empty cell) 정의하기

배열명 = { }

ex>

A = {};

4) 직접 정의하기

배열명 = {넣을 내용11, ... 넣을 내용1n; ...; 넣을 내용 n1, 넣을 내용 nn}

ex>

A = {'array1', 'array2'; [1, 2, 3], [3, 2, 1; 1, 2, 3]};

 

2. 셀 배열 접근하기

1) 셀 인덱싱: 변수명(a, b) 또는 변수명(a:c, b:d) 형태

새로운 변수에 해당 셀 배열의 특정 부분을 셀 배열 형태로 전달하는 경우 사용 가능

ex>

 

2) 내용 인덱싱: 변수명{a, b} 형태 -> 변수명{a:c, b:d} 방식은 사용 불가능!

새로운 변수에 해당 셀 배열의 특정 부분의 내용 자체를 전달하는 경우 사용 가능

ex>

 

3. celldisp 함수

 해당 셀 배열의 모든 내용을 각 화면으로 볼 수 있도록 하는 함수

ex>

 

4. cellplot 함수

 해당 셀 배열의 내용을 격자 형태로 보여주는 함수

ex>

cellplot(A)

cellplot(A) 명령 시 나오는 output plot

5. 응용 예시(함수도 셀 배열에 적용 가능)

% 각 함수를 저장한 셀 배열 g 정의

g{1} = @(x) 1-x(1)^2*x(2);

g{2} = @(x) x(1)+x(2)-10;

g{3} = @(x) 80/(x(1)^2+8*x(2)+5);

 

% 첫 번째에 저장된 함수 불러와서 gx 함수에 저장

gx = g{1};

y = gx([1 2]) % 함수 사용

728x90