exponenta event banner

контейнеры. Карта

Объект, сопоставляющий значения уникальным ключам

Описание

A Map - это структура данных, позволяющая извлекать значения с помощью соответствующего ключа. Клавиши могут быть вещественными числами или символьными векторами. В результате они обеспечивают большую гибкость доступа к данным, чем индексы массива, которые должны быть положительными целыми числами. Значения могут быть скалярными или нескалярными массивами.

Создание

Описание

пример

M = containers.Map(keySet,valueSet) создает Map объект, содержащий ключи из keySet, каждый сопоставлен с соответствующим значением из valueSet. Входные аргументы keySet и valueSet должен иметь одинаковое количество элементов, с keySet с уникальными элементами.

пример

M = containers.Map(keySet,valueSet,'UniformValues',isUniform), где isUniform является false, указывает, что значения в valueSet не обязательно быть однородным. Значение по умолчанию isUniform является true. Значения в valueSet однородны, когда все скаляры имеют одинаковый тип данных, или когда все они являются символьными векторами.

пример

M = containers.Map('KeyType',kType,'ValueType',vType) создает пустой Map и определяет типы данных ключей и значений, которые можно добавить к нему позже. Можно изменить порядок 'KeyType' и 'ValueType' аргументы пары имя-значение, но обе пары имя-значение являются обязательными.

M = containers.Map создает пустой Map объект.

Входные аргументы

развернуть все

Ключи, определяемые как числовой массив, массив ячеек символьных векторов или строковый массив.

Если вы указываете ключи с помощью массива строк, то containers.Map функция преобразует клавиши и сохраняет их в виде символьных векторов. Из-за этого преобразования, KeyType свойство выходного документа Map объект имеет значение 'char'.

Значения, указанные как массив.

Индикатор равномерных значений в valueSet, указано как true (1) или false (0).

Тип данных ключей, добавляемых к пустому Map объект, указанный как символьный вектор. Можно указать kType как любой из типов данных в таблице, так что ключи являются либо векторами символов, либо числовыми скалярами.

kType

Тип данных и размер ключа

'char' (по умолчанию)

Символьный вектор

'double'

Двойной скаляр

'single'

Одиночный скаляр

'int32'

32-разрядный значащий целочисленный скаляр

'uint32'

32-разрядный беззнаковый целочисленный скаляр

'int64'

64-разрядный целочисленный скаляр со знаком

'uint64'

64-разрядный беззнаковый целочисленный скаляр

Тип данных значений, добавляемых к пустому Map объект, указанный как символьный вектор. Можно указать vType в качестве любого из типов данных в таблице.

vType

Тип данных и размер значения

'any' (по умолчанию)

Массив с любым типом данных

'char'

Символьный вектор

'logical'

Логический скаляр

'double'

Двойной скаляр

'single'

Одиночный скаляр

'int8'

8-битный значащий целочисленный скаляр

'uint8'

8-битный беззнаковый целочисленный скаляр

'int16'

16-битный значащий целочисленный скаляр

'uint16'

16-битный беззнаковый целочисленный скаляр

'int32'

32-разрядный значащий целочисленный скаляр

'uint32'

32-разрядный беззнаковый целочисленный скаляр

'int64'

64-разрядный целочисленный скаляр со знаком

'uint64'

64-разрядный беззнаковый целочисленный скаляр

Свойства

развернуть все

Это свойство доступно только для чтения.

Количество пар ключ-значение в Map , указанный как числовой скаляр.

Это свойство доступно только для чтения.

Тип данных ключей, указанный как символьный вектор.

Это свойство доступно только для чтения.

Тип данных значений, указанный как символьный вектор.

Функции объекта

isKeyОпределить, Map объект содержит ключ
keysКлючи возврата Map объект
lengthКоличество пар ключ-значение в Map объект
removeУдаление пар ключ-значение из Map объект
sizeРазмер Map объект
valuesВозвращаемые значения Map объект

Примеры

свернуть все

Создать 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

Показать количество осадков за март. Получить значение за март можно с помощью 'Mar' в качестве ключа.

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

Отображение имени файла, связанного с Санчесом. Если файл содержит числовые значения, можно вызвать функцию для считывания этих значений в массив.

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