Следует иметь в виду, что, если у вас есть больше чем один указатель на Карту, изменяя указатель также, вносит изменения в исходную Карту. Смотрите Изменяют Копию Карты, ниже.
Используйте метод remove
, чтобы удалить любые записи из Карты. При вызове этого метода задайте имя объекта Map
и ключевое имя, чтобы удалить. MATLAB® удаляет ключ и его присваиваемое значение из Карты.
Синтаксис для удалить метода
remove(mapName, 'keyname');
Запустите с карты ticketMap
:
ticketMap = containers.Map(... {'2R175', 'B7398', 'A479GY', 'NZ1452'}, ... {'James Enright', 'Carl Haynes', 'Sarah Latham', ... 'Bradley Reid'});
Удалите одну запись (заданный ключ и его значение) от объекта Map
:
remove(ticketMap, 'NZ1452'); values(ticketMap) ans = 'James Enright' 'Sarah Latham' 'Carl Haynes'
Можно изменить любое значение в Карте просто путем перезаписи текущего значения. Пассажир, содержащий билет A479GY
, идентифицирован как Sarah Latham
:
ticketMap('A479GY') ans = Sarah Latham
Измените имя пассажира на Anna Latham
путем перезаписи исходного значения для ключа A479GY
:
ticketMap('A479GY') = 'Anna Latham';
Проверьте изменение:
ticketMap('A479GY') ans = Anna Latham
Чтобы изменить существующий ключ при хранении значения тем же самым, сначала удалите и ключ и его значение из Карты. Затем создайте новую запись, на этот раз с исправленным ключевым именем.
Измените номер билета, принадлежащий пассажиру Джеймсу Энрайту:
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.
Поскольку ticketMap
является объектом указателя, необходимо быть осторожными при создании копий Карты. Следует иметь в виду, что путем копирования объекта Map, вы действительно только создаете другой указатель на тот же объект. Любые изменения, которые вы вносите в этот указатель, также применяются к исходной Карте.
Сделайте копию Карты ticketMap
. Запишите в эту копию и заметьте, что изменение применяется к самому исходному объекту Map:
copiedMap = ticketMap; copiedMap('AZ12345') = 'unidentified person'; ticketMap('AZ12345') ans = unidentified person
Очистка:
remove(ticketMap, 'AZ12345'); clear copiedMap;
containers.Map
| isKey
| keys
| length
| remove
| size
| values