containers.Map

Возразите что значения карт против уникальных ключей

Описание

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

Создание

Синтаксис

M = containers.Map(keySet,valueSet)
M = containers.Map(keySet,valueSet,'UniformValues',isUniform)
M = containers.Map('KeyType',kType,'ValueType',vType)
M = containers.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'

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

единственный

Единственный скаляр

int32

32-битный скаляр целого числа со знаком

uint32

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

int64

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

uint64

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

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

vType

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

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

Массив, который имеет любой тип данных

'char'

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

логический

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

'double'

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

единственный

Единственный скаляр

int8

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

uint8

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

int16

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

uint16

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

int32

32-битный скаляр целого числа со знаком

uint32

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

int64

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

uint64

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

Свойства

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

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

Количество пар "ключ-значение" в объекте Map, заданном в виде числа.

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

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

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

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

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

isKeyОпределите, содержит ли объект Map ключ
ключиКлавиши Return объекта Map
длинаКоличество пар "ключ-значение" в объекте Map
удалениеУдалите пары "ключ-значение" из объекта Map
размерРазмер объекта Map
значенияВозвращаемые значения объекта 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

Отобразите числовой массив, сопоставленный с Ли.

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 array
    {'Feb'}    {'Jan'}

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

Представленный в R2008b

Была ли эта тема полезной?