如何在Matlab的for循环中向地图添加值?

时间:2018-06-29 18:31:18

标签: matlab

考虑此代码:

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 :(得分:1)

首先,您想要一个单元格数组作为分配给key的值:

M(1) = {T};

接下来,您要扩展此单元格数组,而不是扩展地图的内部values数组:

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

这有意义吗?