containers.Map

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

Описание

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

Отображение имени файла, сопоставленного с 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