Нескалярные массивы поддерживаются нормально, если ValueType 'any'. Похоже, проблема не в методе, который вы используете для расширения, а в типе ключа или значения.
Когда вы используете конструктор, который принимает ключ и значение, он выводит ключ и тип значения из переданных значений. Если значение скалярно double, оно выводит тип как 'double'. Это не поддерживает нескалярные массивы.
>> map = containers.Map(1234, 1.0);
>> disp(map.ValueType)
double
Конструктор контейнеров по умолчанию будет иметь KeyType 'char' и ValueType 'any'. Это будет иметь расширенное поведение, которое вы хотите, но вам придется использовать вместо этого символы char. Используйте форму конструктора, чтобы явно установить типы ключей и значений «double» и «any», и все будет работать так, как вы хотите.
map = containers.Map('KeyType','double', 'ValueType','any');
map(1234) = 1.0;
map(1234) = [map(1234) 2.0];