MATLAB Mapping for Dictionaries
There are two mappings for a Slice dictionary, depending on its key type:
Key Type | Value Type | Mapped Type | Comments |
---|---|---|---|
Integral type (short , int , long ), bool , byte , enum , string | Any | containers.Map | Enumeration keys must be converted to integers. |
struct | Any | structure array | containers.Map does not support user-defined key types. |
The mapping generates a class with the same name as the dictionary. This class provides one useful function for applications: a new
function that returns an empty instance of the mapped type.
On this page:
Mapping to containers.Map
Consider the definition of our EmployeeMap once more:
dictionary<long, Employee> EmployeeMap;
Since the key is a primitive type, EmployeeMap
maps to containers.Map
. We can use it as shown below:
em = containers.Map('KeyType', 'int64', 'ValueType', 'any'); e = Employee(); e.number = 31; e.firstName = 'James'; e.lastName = 'Gosling'; em(e.number) = e;
The value for KeyType
and ValueType
depends on the corresponding Slice type as shown in the following table:
Slice Type | Corresponding KeyType | Corresponding ValueType |
---|---|---|
bool | int32 | logical |
byte | int32 | uint8 |
short | int32 | int16 |
int | int32 | int32 |
long | int64 | int64 |
enum | int32 | any |
string | char | char |
float | single | |
double | double | |
any other type | any |
Mapping to Structure Array
A dictionary with a structure key type maps to a MATLAB structure array. This mapping sacrifices some functionality, most notably the efficient indexing provided by containers.Map
, but it's a straightforward mapping that utilizes the native MATLAB structure type.
Consider this example:
struct ID { string symbol; string exchange; } dictionary<ID, double> Quotes;
We can construct this dictionary in MATLAB as follows:
quotes = []; quotes(1).key = ID('CVX', 'NYSE'); quotes(1).value = 100.00;
Each element of the structure array must have key
and value
fields whose types correspond to the mapped types for the Slice dictionary's key and value.
An empty dictionary with a struct
key type is mapped to an empty structure array with fields named key
and value
.