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)
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]) % 함수 사용
'MATLAB' 카테고리의 다른 글
MATLAB 행렬에서 특정 열 벡터 또는 행 벡터 존재 여부 확인하기 (0) | 2021.05.24 |
---|---|
.mat 파일 저장 및 불러오기 (0) | 2021.05.04 |
polyfit, polyval 함수로 다항곡선 회귀분석하기(Polynomial Curve Fitting) (0) | 2021.02.07 |
MATLAB의 particleswarm 함수로 최적화 문제 풀기(Particle Swarm Optimization) (0) | 2021.01.23 |
MATLAB의 ga 함수로 최적화 문제 풀기(Genetic Algorithm) (0) | 2021.01.23 |