Creating a Map Object

A Map is an object of the Map class. It is defined within a MATLAB® package called containers. As with any class, you use its constructor function to create any new instances of it. You must include the package name when calling the constructor:

newMap = containers.Map(optional_keys_and_values)

Constructing an Empty Map Object

When you call the Map constructor with no input arguments, MATLAB constructs an empty Map object. When you do not end the command with a semicolon, MATLAB displays the following information about the object you have constructed:

newMap = containers.Map()

newMap = 

  Map with properties:

        Count: 0
      KeyType: char
    ValueType: any

The properties of an empty Map object are set to their default values:

  • Count = 0

  • KeyType = 'char'

  • ValueType = 'any'

Once you construct the empty Map object, you can use the keys and values methods to populate it. For a summary of MATLAB functions you can use with a Map object, see Methods of the Map Class

Constructing An Initialized Map Object

Most of the time, you will want to initialize the Map with at least some keys and values at the time you construct it. You can enter one or more sets of keys and values using the syntax shown here. The brace operators ({}) are not required if you enter only one key/value pair:

mapObj = containers.Map({key1, key2, ...}, {val1, val2, ...});

For those keys and values that are character strings, be sure that you specify them enclosed within single quotation marks. For example, when constructing a Map that has character string keys, use

mapObj = containers.Map(...
   {'keystr1', 'keystr2', ...}, {val1, val2, ...});

As an example of constructing an initialized Map object, create a new Map for the following key/value pairs taken from the monthly rainfall map shown earlier in this section.

k = {'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', ...
  'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Annual'};

v = {327.2, 368.2, 197.6, 178.4, 100.0,  69.9, ...
  32.3,  37.3,  19.0,  37.0,  73.2, 110.9, 1551.0};

rainfallMap = containers.Map(k, v)

rainfallMap = 

  Map with properties:

        Count: 13
      KeyType: char
    ValueType: double

The Count property is now set to the number of key/value pairs in the Map, 13, the KeyType is char, and the ValueType is double.

Combining Map Objects

You can combine Map objects vertically using concatenation. However, the result is not a vector of Maps, but rather a single Map object containing all key/value pairs of the contributing Maps. Horizontal vectors of Maps are not allowed. See Building a Map with Concatenation, below.

Was this topic helpful?