Main Content

Map의 키와 값 수정하기

참고

Map에 대한 핸들이 두 개 이상 있는 경우 해당 핸들을 수정하면 원래 Map에도 변경 내용이 적용됩니다. 아래의 Map의 복사본 수정하기 항목을 참조하십시오.

Map에서 키와 값 제거하기

remove 메서드를 사용하여 Map에서 임의의 요소를 삭제할 수 있습니다. 이 메서드를 호출할 때는 제거할 Map 객체 이름과 키 이름을 지정합니다. MATLAB®은 Map에서 키와 해당 연결 값을 삭제합니다.

제거 메서드 구문은 다음과 같습니다.

remove(mapName, 'keyname');

먼저 Map ticketMap으로 시작합니다.

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

Map 객체에서 하나의 요소(지정된 키 및 해당 키 값)를 제거합니다.

remove(ticketMap, 'NZ1452');
values(ticketMap)

ans = 

    'James Enright'    'Sarah Latham'    'Carl Haynes'

값 수정하기

현재 값을 덮어써서 Map에서 임의의 값을 간단히 수정할 수 있습니다. 항공권 A479GY를 소지한 승객이 Sarah Latham으로 식별됩니다.

ticketMap('A479GY')

ans =

Sarah Latham

다음과 같이 A479GY 키의 원래 값을 덮어쓰고 승객의 이름을 Anna Latham으로 변경합니다.

ticketMap('A479GY') = 'Anna Latham';

변경 결과를 확인합니다.

ticketMap('A479GY')

ans =

Anna Latham

키 수정하기

값을 그대로 유지하면서 기존 키를 수정하려면, 먼저 Map에서 키와 해당 키 값을 모두 제거하십시오. 그런 다음 새 요소를 생성합니다. 이번에는 수정된 키 이름을 사용합니다.

다음과 같이 James Enright라는 승객이 소지하는 항공권 번호를 수정합니다.

remove(ticketMap, '2R175');
ticketMap('2S185') = 'James Enright';

k = keys(ticketMap);  v = values(ticketMap);
str1 = '   ''%s'' has been assigned a new\n';
str2 = '    ticket number: %s.\n';

fprintf(str1, v{1})
fprintf(str2, k{1})

 'James Enright' has been assigned a new
    ticket number: 2S185.

Map의 복사본 수정하기

ticketMap은 핸들 객체이기 때문에 Map의 복사본을 만들 때 주의해야 합니다. Map 객체를 복사하는 것은 실제로는 동일한 객체의 또 다른 핸들을 생성하는 것입니다. 이 핸들에 대해 수행하는 모든 변경 작업은 원래 Map에도 적용됩니다.

ticketMap Map의 복사본을 만듭니다. 이 복사본에 데이터를 쓴 후, 해당 변경 내용이 원래 Map 객체 자체에 적용되는지 확인합니다.

copiedMap = ticketMap;

copiedMap('AZ12345') = 'unidentified person';
ticketMap('AZ12345')

ans =

unidentified person

정리합니다.

remove(ticketMap, 'AZ12345');
clear copiedMap;

참고 항목

| | | | | |

관련 항목