Contenido principal

containers.Map

Objeto que asigna claves únicas a valores

Descripción

Un objeto Map es una estructura de datos que permite recuperar valores usando una clave correspondiente. Las claves pueden ser números reales o vectores de caracteres. Como resultado, proporcionan más flexibilidad para el acceso de datos que los índices de arreglos, que deben ser enteros positivos. Los valores pueden ser arreglos escalares o no escalares.

Creación

Descripción

Nota

Se recomienda el objeto dictionary en lugar de containers.Map porque acepta más tipos de datos como claves y valores, y ofrece un mejor rendimiento. (desde R2022b)

M = containers.Map(keySet,valueSet) crea un objeto Map que contiene claves de keySet, cada una asignada al correspondiente valor de valueSet. Los argumentos de entrada keySet y valueSet deben tener el mismo número de elementos, y keySet debe tener elementos únicos.

ejemplo

M = containers.Map(keySet,valueSet,'UniformValues',isUniform), donde isUniform es false, especifica que los valores de valueSet no deben ser uniformes. El valor predeterminado de isUniform es true. Los valores de valueSet son uniformes cuando son todos escalares con el mismo tipo de datos o cuando son todos vectores de caracteres.

ejemplo

M = containers.Map('KeyType',kType,'ValueType',vType) crea un objeto Map vacío y especifica los tipos de datos de las claves y los valores que se pueden añadir después. Puede cambiar el orden de los argumentos de par nombre-valor 'KeyType' y 'ValueType', pero ambos pares nombre-valor son necesarios.

ejemplo

M = containers.Map crea un objeto Map vacío.

Argumentos de entrada

expandir todo

Claves, especificadas como arreglo numérico, arreglo de celdas de vectores de caracteres o arreglo de cadenas.

Si especifica claves utilizando un arreglo de cadenas, la función containers.Map convierte las claves y las almacena como vectores de caracteres. Debido a esta conversión, la propiedad KeyType del objeto Map de salida está establecida en 'char'.

Valores, especificados como arreglo.

Indicador de valores uniformes en valueSet, especificado como true (1) o false (0).

Tipo de datos de las claves que desea añadir a un objeto Map vacío, especificado como vector de caracteres. Puede especificar kType como cualquiera de los tipos de datos de la tabla para que las claves sean vectores de caracteres o escalares numéricos.

kType

Tipo de datos y tamaño de la clave

'char' (valor predeterminado)

Vector de caracteres

'double'

Escalar doble

'single'

Escalar simple

'int32'

Escalar entero con signo de 32 bits

'uint32'

Escalar entero sin signo de 32 bits

'int64'

Escalar entero con signo de 64 bits

'uint64'

Escalar entero sin signo de 64 bits

Tipo de datos de los valores que desea añadir a un objeto Map vacío, especificado como vector de caracteres. Puede especificar vType como cualquiera de los tipos de datos de la tabla.

vType

Tipo de datos y tamaño del valor

'any' (valor predeterminado)

Arreglo con cualquier tipo de datos

'char'

Vector de caracteres

'logical'

Escalar lógico

'double'

Escalar doble

'single'

Escalar simple

'int8'

Escalar entero con signo de 8 bits

'uint8'

Escalar entero sin signo de 8 bits

'int16'

Escalar entero con signo de 16 bits

'uint16'

Escalar entero sin signo de 16 bits

'int32'

Escalar entero con signo de 32 bits

'uint32'

Escalar entero sin signo de 32 bits

'int64'

Escalar entero con signo de 64 bits

'uint64'

Escalar entero sin signo de 64 bits

Propiedades

expandir todo

Esta propiedad o parámetro es de solo lectura.

Número de pares clave-valor en el objeto Map, especificado como escalar numérico.

Esta propiedad o parámetro es de solo lectura.

Tipo de datos de las claves, especificado como vector de caracteres.

Esta propiedad o parámetro es de solo lectura.

Tipo de datos de los valores, especificado como vector de caracteres.

Funciones del objeto

isKeyDetermine if Map object contains key
keysReturn keys of Map object
lengthNumber of key-value pairs in Map object
removeDelete key-value pairs from Map object
sizeTamaño de un objeto Map
valuesReturn values of Map object

Ejemplos

contraer todo

Cree un objeto Map que contenga datos de precipitación de varios meses. El mapa contiene los cuatro valores de valueSet y las claves son los cuatros nombres de meses de 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

Muestre la precipitación de marzo. Puede recuperar el valor de marzo utilizando 'Mar' como clave.

M('Mar')
ans = 
197.6000

Muestre el número de valores del mapa. Puede acceder a la propiedad Count con la notación de puntos.

M.Count
ans = uint64

4

Cree un objeto Map con números de identificación como claves y nombres de empleados como valores.

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

Recupere un nombre utilizando un número de identificación como clave.

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

Cree un objeto Map que contenga resultados de pruebas de pacientes. Para cualquier paciente, los resultados pueden estar en un arreglo numérico o en un archivo. Puede almacenar arreglos numéricos y nombres de archivo como valores en el mismo mapa. Para almacenar valores que no tengan el mismo tipo de datos en el mismo mapa, especifique '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

Muestre el arreglo numérico asociado a Li.

M('Li')
ans = 1×2

    5.8000    7.3500

Muestre el nombre de archivo asociado a Sanchez. Si el archivo contiene valores numéricos, puede llamar a una función para leer esos valores en un arreglo.

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

Cree un objeto Map vacío. Especifique los tipos de datos para pares clave-valor añadidos posteriormente.

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

  Map with properties:

        Count: 0
      KeyType: char
    ValueType: double

Añada pares clave-valor al mapa.

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

        Count: 2
      KeyType: char
    ValueType: double

Muestre las claves y los valores que contiene ahora el mapa.

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

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

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido en R2008b