Как добавить значения на карту в цикле for в Matlab? - PullRequest
0 голосов
/ 29 июня 2018

Учитывая этот код:

T = table(categorical({'M';'F';'M'}),[45;32;34],logical([1;0;0]),...
          'VariableNames',{'Gender','Age','Vote'},...
          'RowNames',{'NY';'CA';'MA'});
M = containers.Map('KeyType','int32','ValueType','any');
M(1) = T;

Теперь я хочу расширить значения, добавив другую таблицу (здесь это та же таблица) на карте M в цикле к существующему ключу. Я пробовал:

for i=1:5
    if isKey(M, 1)
        cur_content = M.values;
        cur_content{end+1} = T;
        M(1) = cur_content;
    end
end

Итак, мой ожидаемый контент на карте должен выглядеть так:

Key: 1, {table_1}, {table_2}, {table_3}, {table_4}, {table_5}
Key: n, {table_1}, ... {table_k}

Что я здесь не так делаю?

1 Ответ

0 голосов
/ 29 июня 2018

Прежде всего, вы хотите иметь массив ячеек в качестве значения, назначенного клавише:

M(1) = {T};

Далее вы хотите расширить этот массив ячеек, а не внутренний values массив карты:

cur = M(1);
cur{end+1} = T;
M(1) = cur;

Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...