Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

셀형 배열과 구조체형 배열

이 예제에서는 셀형 배열과 구조체형 배열을 비교하고 각 유형의 배열에 데이터를 저장하는 방법을 보여줍니다. 셀형 배열과 구조체형 배열 모두에 유형과 크기가 각기 다른 데이터를 저장할 수 있습니다.

구조체형 배열

구조체형 배열은 이름을 기준으로 액세스하는 필드의 데이터를 포함합니다.

예를 들어, 구조체형 배열에 환자 레코드를 저장해 보겠습니다.

patient(1).name = 'John Doe';
patient(1).billing = 127.00;
patient(1).test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205];

patient(2).name = 'Ann Lane';
patient(2).billing = 28.50;
patient(2).test = [68, 70, 68; 118, 118, 119; 172, 170, 169];

patient
patient=1×2 struct array with fields:
    name
    billing
    test

각 환자에 대한 테스트 결과를 보여주는 막대 그래프를 생성합니다.

numPatients = numel(patient);
for p = 1:numPatients
   figure
   bar(patient(p).test)
   title(patient(p).name)
   xlabel('Test')
   ylabel('Result')
end

Figure contains an axes. The axes with title John Doe contains 3 objects of type bar.

Figure contains an axes. The axes with title Ann Lane contains 3 objects of type bar.

셀형 배열

셀형 배열은 숫자 인덱싱을 사용하여 액세스하는 셀의 데이터를 포함합니다. 셀형 배열은 주로 개별 텍스트 조각을 저장하거나 스프레드시트의 이종 데이터를 저장하는 데 쓰입니다.

예를 들어, 3개의 도시에 대해 셀형 배열에 시간 경과에 따른 온도 데이터를 저장해 보겠습니다.

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

temperature
temperature=5×2 cell array
    {'2009-12-31'}    {[ 45 49 0]}
    {'2010-04-03'}    {[54 68 21]}
    {'2010-06-20'}    {[72 85 53]}
    {'2010-09-15'}    {[63 81 56]}
    {'2010-12-09'}    {[38 54 18]}

날짜별로 각 도시의 온도를 플로팅합니다.

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

plot(dates,allTemps)
title('Temperature Trends for Different Locations')
xlabel('Date')
ylabel('Degrees (Fahrenheit)')

Figure contains an axes. The axes with title Temperature Trends for Different Locations contains 3 objects of type line.

기타 컨테이너 배열

구조체 및 셀형 배열은 이종 데이터를 저장하는 데 가장 일반적으로 사용되는 컨테이너입니다. 테이블을 사용하면 이종 열 방향 데이터 또는 테이블 형식 데이터를 간편하게 저장할 수 있습니다. 또는 맵 컨테이너를 사용하거나 자신만의 고유한 클래스를 생성할 수도 있습니다.

참고 항목

| | | | | |

관련 예제

세부 정보