Modify Keys and Values in Map
Note
Keep in mind that if you have more than one handle to a Map, modifying the handle also makes changes to the original Map. SeeModify Copy of Map, below.
Remove Keys and Values from Map
Use theremove
method to delete any entries from a Map. When calling this method, specify theMap
object name and the key name to remove. MATLAB®deletes the key and its associated value from the Map.
The syntax for the remove method is
remove(mapName, 'keyname');
Start with the MapticketMap
:
ticketMap = containers.Map(... {'2R175', 'B7398', 'A479GY', 'NZ1452'}, ... {'James Enright', 'Carl Haynes', 'Sarah Latham', ... 'Bradley Reid'});
Remove one entry (the specified key and its value) from theMap
object:
remove(ticketMap, 'NZ1452'); values(ticketMap) ans = 'James Enright' 'Sarah Latham' 'Carl Haynes'
Modify Values
You can modify any value in a Map simply by overwriting the current value. The passenger holding ticketA479GY
is identified asSarah Latham
:
ticketMap('A479GY') ans = Sarah Latham
Change the passenger's first name toAnna Latham
by overwriting the original value for theA479GY
key:
ticketMap('A479GY') = 'Anna Latham';
Verify the change:
ticketMap('A479GY') ans = Anna Latham
Modify Keys
To modify an existing key while keeping the value the same, first remove both the key and its value from the Map. Then create a new entry, this time with the corrected key name.
Modify the ticket number belonging to passenger James Enright:
remove(ticketMap, '2R175'); ticketMap('2S185') = 'James Enright'; k = keys(ticketMap); v = values(ticketMap); str1 = ' ''%s'' has been assigned a new\n'; str2 = ' ticket number: %s.\n'; fprintf(str1, v{1}) fprintf(str2, k{1}) 'James Enright' has been assigned a new ticket number: 2S185.
Modify Copy of Map
BecauseticketMap
is a handle object, you need to be careful when making copies of the Map. Keep in mind that by copying a Map object, you are really just creating another handle to the same object. Any changes you make to this handle are also applied to the original Map.
做的一个副本ticketMap
Map. Write to this copy, and notice that the change is applied to the original Map object itself:
copiedMap = ticketMap; copiedMap('AZ12345') = 'unidentified person'; ticketMap('AZ12345') ans = unidentified person
Clean up:
remove(ticketMap, 'AZ12345'); clear copiedMap;
See Also
keys
|isKey
|values
|containers.Map
|remove
|length
|size