Main Content

containers.Map

고유 키를 값에 매핑하는 객체

설명

Map 객체는 대응하는 키를 사용하여 값을 가져오는 데 사용할 수 있는 데이터 구조체입니다. 키는 실수 또는 문자형 벡터일 수 있습니다. 따라서, 양의 정수여야 하는 배열 인덱스보다 데이터에 더욱 유연하게 액세스할 수 있도록 합니다. 값은 스칼라 또는 비 스칼라 배열일 수 있습니다.

생성

설명

참고

더 많은 데이터형을 키와 값으로 받고 더 나은 성능을 제공하기 때문에 dictionarycontainers.Map보다 권장됩니다. (R2022b 이후)

M = containers.Map(keySet,valueSet)keySet의 키와 valueSet의 값을 서로 매핑하여 Map 객체를 만듭니다. 입력 인수 keySetvalueSet은 요소의 개수가 동일해야 하며, 고유한 keySet 요소를 가져야 합니다.

예제

M = containers.Map(keySet,valueSet,'UniformValues',isUniform)isUniformfalse인 경우, valueSet의 값이 균일할 필요가 없다는 것을 지정합니다. isUniform의 디폴트 값은 true입니다. valueSet의 값이 모두 동일한 데이터형을 갖는 스칼라이거나, 모두 문자형 벡터인 경우 그 값은 균일합니다.

예제

M = containers.Map('KeyType',kType,'ValueType',vType)은 빈 Map 객체를 만들고, 나중에 추가할 수 있는 키와 값의 데이터형을 지정합니다. 'KeyType' 이름-값 쌍 인수와 'ValueType' 이름-값 쌍 인수의 순서를 서로 바꿀 수 있으나, 두 쌍 모두 필요합니다.

예제

M = containers.Map은 빈 Map 객체를 만듭니다.

입력 인수

모두 확장

키로, 숫자형 배열, 문자형 벡터로 구성된 셀형 배열 또는 string형 배열로 지정됩니다.

키를 string형 배열로 지정하면 containers.Map 함수는 키를 변환하여 문자형 벡터로 저장합니다. 이 변환에 의해 출력 Map 객체의 KeyType 속성이 'char'로 설정됩니다.

값으로, 배열로 지정됩니다.

valueSet의 값이 균일해야 하는지에 대한 표시자, true(1) 또는 false((0))로 지정됩니다.

Map 객체에 추가되는 키의 데이터형으로, 문자형 벡터로 지정됩니다. kType을 다음 표의 데이터형 중 하나로 지정할 수 있습니다. 아래 표에 따르면 키는 문자형 벡터 또는 숫자형 스칼라일 수 있습니다.

kType

키의 데이터형 및 크기

'char'(디폴트 값)

문자형 벡터

'double'

double형 스칼라

'single'

single형 스칼라

'int32'

32비트의 부호 있는 정수 스칼라

'uint32'

32비트의 부호 없는 정수 스칼라

'int64'

64비트의 부호 있는 정수 스칼라

'uint64'

64비트의 부호 없는 정수 스칼라

Map 객체에 추가되는 값의 데이터형으로, 문자형 벡터로 지정됩니다. vType을 다음 표의 데이터형 중 하나로 지정할 수 있습니다.

vType

값의 데이터형 및 크기

'any'(디폴트 값)

임의의 데이터형으로 이루어진 배열

'char'

문자형 벡터

'logical'

논리형 스칼라

'double'

double형 스칼라

'single'

single형 스칼라

'int8'

8비트의 부호 있는 정수 스칼라

'uint8'

8비트의 부호 없는 정수 스칼라

'int16'

16비트의 부호 있는 정수 스칼라

'uint16'

16비트의 부호 없는 정수 스칼라

'int32'

32비트의 부호 있는 정수 스칼라

'uint32'

32비트의 부호 없는 정수 스칼라

'int64'

64비트의 부호 있는 정수 스칼라

'uint64'

64비트의 부호 없는 정수 스칼라

속성

모두 확장

읽기 전용 속성입니다.

Map 객체에 있는 키-값 쌍의 개수로, 숫자형 스칼라로 지정됩니다.

읽기 전용 속성입니다.

키의 데이터형으로, 문자형 벡터로 지정됩니다.

읽기 전용 속성입니다.

값의 데이터형으로, 문자형 벡터로 지정됩니다.

객체 함수

isKeyMap 객체에 키가 포함되어 있는지 확인
keysMap 객체의 키 반환
lengthMap 객체에 있는 키-값 쌍의 개수
removeDelete key-value pairs from Map object
sizeMap 객체의 크기
valuesMap 객체의 값을 반환합니다.

예제

모두 축소

몇 개월 동안의 강우량 데이터가 포함된 Map 객체를 만듭니다. 이 맵에는 valueSet에 있는 네 개의 값과 keySet에 있는 네 개의 월 이름이 포함됩니다.

keySet = {'Jan','Feb','Mar','Apr'};
valueSet = [327.2 368.2 197.6 178.4];
M = containers.Map(keySet,valueSet)
M = 
  Map with properties:

        Count: 4
      KeyType: char
    ValueType: double

3월의 강우량을 표시합니다. 'Mar'을 키로 사용하여 3월의 값을 검색할 수 있습니다.

M('Mar')
ans = 
197.6000

맵에 있는 값의 개수를 표시합니다. 점 표기법을 사용하여 Count 속성에 액세스할 수 있습니다.

M.Count
ans = uint64

4

식별 번호를 키로 사용하고 직원 이름을 값으로 사용하여 Map 객체를 만듭니다.

ids = [437 1089 2362];
names = {'Lee, N.','Jones, R.','Sanchez, C.'};
M = containers.Map(ids,names)
M = 
  Map with properties:

        Count: 3
      KeyType: double
    ValueType: char

식별 번호를 키로 사용하여 이름을 검색합니다.

M(437)
ans = 
'Lee, N.'

환자에 대한 테스트 결과가 포함된 Map 객체를 만듭니다. 환자에 대한 결과는 숫자형 배열에 있거나 파일에 있는 결과일 수 있습니다. 숫자형 배열과 파일 이름을 동일한 맵에 값으로 저장할 수 있습니다. 같은 데이터형을 갖고 있지 않은 값을 동일한 맵에 저장하려면 'UniformValues',false를 지정하십시오.

keySet = {'Li','Jones','Sanchez'};
testLi = [5.8 7.35];
testJones = [27 3.92 6.4 8.21];
testSanchez = 'C:\Tests\Sanchez.dat';

valueSet = {testLi,testJones,testSanchez};
M = containers.Map(keySet,valueSet,'UniformValues',false)
M = 
  Map with properties:

        Count: 3
      KeyType: char
    ValueType: any

Li와 연결된 숫자형 배열을 표시합니다.

M('Li')
ans = 1×2

    5.8000    7.3500

Sanchez와 연결된 파일 이름을 표시합니다. 파일에 숫자형 값이 포함된 경우, 함수를 호출하여 이러한 값을 배열로 읽어올 수 있습니다.

M('Sanchez')
ans = 
'C:\Tests\Sanchez.dat'

Map 객체를 만듭니다. 나중에 추가되는 키-값 쌍에 대한 데이터형을 지정합니다.

M = containers.Map('KeyType','char','ValueType','double')
M = 

  Map with properties:

        Count: 0
      KeyType: char
    ValueType: double

키-값 쌍을 맵에 추가합니다.

M('Jan') = 327.2;
M('Feb') = 368.2;
M
M = 
  Map with properties:

        Count: 2
      KeyType: char
    ValueType: double

맵에 현재 포함된 키와 값을 표시합니다.

keys(M)
ans = 1x2 cell
    {'Feb'}    {'Jan'}

values(M)
ans=1×2 cell array
    {[368.2000]}    {[327.2000]}

확장 기능

버전 내역

R2008b에 개발됨