MATLAB动态读/写属性- getattr、setattr?

tzdcorbm  于 2022-11-24  发布在  Matlab
关注(0)|答案(1)|浏览(192)
class A(): pass
a = A()
setattr(a, 'dog', True)

有MATLAB的等价物吗?如果没有,最简洁的替代方案是什么?目前我有

for i=1:length(keys)
    k = keys{i};
    v = values{i};
    if k == "arg1"
        obj.arg1 = v;
    elseif k == "arg2"
        obj.arg2 = v;
    ...

getattr也是如此?如果需要,假设所有keys都已经是Properties
非Python读者:setattr(obj, 'a', 1) <=> obj.a = 1getattr(obj, 'a') <=> obj.a中的至少一个。

wmvff8tz

wmvff8tz1#

obj.arg1obj.('arg1')相同。
因此在您的代码片段中相当于:

for i=1:length(keys)
   obj.(keys{i}) = values{i};
end

相关问题