Main Content

상이한 값 유형에 매핑하기

흔히, Map 구조에 구조체나 셀형 배열과 같은 다른 클래스를 저장하기도 합니다. 그러나, Map에는 double형, 문자형, 정수형, 논리형과 같은 기본 MATLAB® 유형 데이터를 저장하는 것이 메모리 효율성 측면에서 가장 좋습니다.

구조체형 배열에 매핑하기

다음 예제에서는 항공권 번호와 목적지를 포함하는 구조체에 항공편 좌석 번호를 매핑합니다. 먼저, 항공권 번호를 승객에 매핑하는 Map ticketMap을 만듭니다.

ticketMap = containers.Map(...
    {'2R175', 'B7398', 'A479GY', 'NZ1452'}, ...
    {'James Enright', 'Carl Haynes', 'Sarah Latham', ...
     'Bradley Reid'});

그런 다음, 항공권 번호와 목적지를 포함하는 다음과 같은 구조체형 배열을 생성합니다.

s1.ticketNum = '2S185'; s1.destination = 'Barbados';
s1.reserved = '06-May-2008'; s1.origin = 'La Guardia';
s2.ticketNum = '947F4'; s2.destination = 'St. John';
s2.reserved = '14-Apr-2008'; s2.origin = 'Oakland';
s3.ticketNum = 'A479GY'; s3.destination = 'St. Lucia';
s3.reserved = '28-Mar-2008'; s3.origin = 'JFK';
s4.ticketNum = 'B7398'; s4.destination = 'Granada';
s4.reserved = '30-Apr-2008'; s4.origin = 'JFK';
s5.ticketNum = 'NZ1452'; s5.destination = 'Aruba';
s5.reserved = '01-May-2008'; s5.origin = 'Denver';

이들 구조체에 5개 좌석을 매핑합니다.

seatingMap = containers.Map( ...
    {'23F', '15C', '15B', '09C', '12D'}, ...
    {s5, s1, s3, s4, s2});

이 Map 객체를 사용하여 좌석 09C를 예약한 승객에 대한 정보를 찾습니다.

seatingMap('09C')

ans = 

      ticketNum: 'B7398'
    destination: 'Granada'
       reserved: '30-Apr-2008'
         origin: 'JFK'

ticketMapseatingMap을 함께 사용하여 좌석 15B를 예약한 승객의 이름을 찾을 수 있습니다.

ticket = seatingMap('15B').ticketNum;
passenger = ticketMap(ticket)

passenger =

Sarah Latham

셀형 배열에 매핑하기

구조체와 마찬가지로, Map 객체의 셀형 배열에도 매핑할 수 있습니다. 이전 섹션의 항공편 예를 계속해서 살펴볼 텐데, 이 항공편 승객의 일부는 해당 항공사의 "마일리지" 계정을 가지고 있습니다. 이러한 승객의 이름을 해당 승객이 이용한 마일리지와 가용 마일리지 레코드에 매핑합니다.

accountMap = containers.Map( ...
    {'Susan Spera','Carl Haynes','Anna Latham'}, ...
    {{247.5, 56.1}, {0, 1342.9}, {24.6, 314.7}});

Map을 사용하여 승객에 대한 계정 정보를 가져옵니다.

name = 'Carl Haynes';
acct = accountMap(name);

fprintf('%s has used %.1f miles on his/her account,\n', ...
    name, acct{1})
fprintf('  and has %.1f miles remaining.\n', acct{2})

Carl Haynes has used 0.0 miles on his/her account,
  and has 1342.9 miles remaining.

참고 항목

| | | | |

관련 항목