matlab中的动态变量名称

dynamic variable names in matlab

我希望用另一个结构 (BT) 中的多个字段扩展一个结构 (bac)。这些字段的名称作为字符串包含在元胞数组 (adds) 中。

这就是我现在所拥有的(显然没有完成这项工作,解释这个 post):

for i=1:numel(adds)
    eval(genvarname('bac.',adds{i})) = eval(strcat('BT.',adds{i}));
end

我也尝试过使用 sprintf,但似乎对我不起作用。我相信你们中的一个人知道该怎么做,因为我觉得它应该很容易。

最好的方法是使用 dynamic field names:

for i=1:numel(adds)
    bac.(adds{i}) = BT.(adds{i});
end