Main Content

셀형 배열의 내용을 함수로 전달하기

다음 예제에서는 셀형 배열을 입력값으로 인식하지 않는 MATLAB® 함수로 셀형 배열의 데이터를 전달하는 여러 가지 방법을 보여줍니다.

중괄호 {}를 사용한 인덱싱으로 단일 셀의 내용 전달하기

이 예제에서는 텍스트와 더불어 난수로 구성된 20×2 배열을 포함하는 셀형 배열을 생성합니다.

randCell = {'Random Data', rand(20,2)};
plot(randCell{1,2})
title(randCell{1,1})

Figure contains an axes object. The axes object with title Random Data contains 2 objects of type line.

내용의 요소까지 한 단계 더 깊이 참조(멀티레벨 인덱싱)하여 데이터의 첫 번째 열만 플로팅합니다.

figure
plot(randCell{1,2}(:,1))
title('First Column of Data')

Figure contains an axes object. The axes object with title First Column of Data contains an object of type line.

cell2mat을 사용하여 여러 셀의 숫자형 데이터 결합하기

이 예제에서는 3개의 도시에 대한 온도 데이터를 저장하는 5×2 셀형 배열을 생성한 후 날짜별로 각 도시의 온도를 플로팅합니다.

temperature(1,:) = {'2020-01-01', [45, 49, 0]};
temperature(2,:) = {'2020-04-03', [54, 68, 21]};
temperature(3,:) = {'2020-06-20', [72, 85, 53]};
temperature(4,:) = {'2020-09-15', [63, 81, 56]};
temperature(5,:) = {'2020-12-31', [38, 54, 18]};

allTemps = cell2mat(temperature(:,2));
dates = datetime(temperature(:,1));

plot(dates, allTemps)

Figure contains an axes object. The axes object contains 3 objects of type line.

함수에 쉼표로 구분된 목록 형태로 여러 셀의 내용 전달하기

이 예제에서는 X에 대한 Y를 플로팅한 후 2×3 셀형 배열 C의 선 스타일을 적용합니다.

X = -pi:pi/10:pi;
Y = tan(sin(X)) - sin(tan(X));

C(:,1) = {'LineWidth'; 2};
C(:,2) = {'MarkerEdgeColor'; 'k'};
C(:,3) = {'MarkerFaceColor'; 'g'};

plot(X, Y, '--rs', C{:})

Figure contains an axes object. The axes object contains an object of type line.

관련 항목