50 lines
1.4 KiB
Matlab
50 lines
1.4 KiB
Matlab
% a map is an instance of a Map class
|
|
|
|
% creates an empty map
|
|
emptyMap = containers.Map;
|
|
|
|
% .Count: total number of key/value pairs
|
|
assert(emptyMap.Count == 0);
|
|
% .KeyType: class of the key value
|
|
% by default set to 'char'
|
|
assert(isequal(emptyMap.KeyType, 'char'));
|
|
|
|
% .ValueType: class of the values
|
|
% by default set to 'any'
|
|
assert(isequal(emptyMap.ValueType, 'any'));
|
|
|
|
% create initalized map
|
|
% note: keys can only be
|
|
% - integers scalars
|
|
% - 1xN char arrays
|
|
% - double or single scalars
|
|
pairs = containers.Map({'Name', 'Msg'}, {"Enrico", "Hello"});
|
|
assert(pairs.Count == 2);
|
|
assert(isequal(pairs.KeyType, 'char'));
|
|
assert(isequal(pairs.ValueType, 'any')); % this didn't change
|
|
|
|
% size(map, 1) is equivalent to .Count
|
|
assert(pairs.Count == size(pairs, 1));
|
|
|
|
% size(map, 2) = size(map, 3) = ... = 1 (map is sort of nx1)
|
|
assert(size(pairs, 23) == 1);
|
|
|
|
% size(map) returns [map.Count 1]
|
|
assert(isequal( size(pairs), [pairs.Count 1] ));
|
|
|
|
% keys() returns the sorted keys as a cell array
|
|
assert(isequal( keys(pairs) , sort({'Name', 'Msg'})));
|
|
|
|
% values() returns the map values, sorted as the corresponding keys
|
|
assert(isequal( values(pairs), {"Hello", "Enrico"} ));
|
|
|
|
% index map by key
|
|
assert(isequal( pairs('Msg'), "Hello" ));
|
|
|
|
% change a value
|
|
pairs('Msg') = "World";
|
|
|
|
% check for key existence
|
|
assert(isequal(pairs.isKey('Msg'), true));
|
|
assert(isequal(pairs.isKey('Test'), false));
|