matlab class - 方法允许用户选择要修改的 属性
matlab class - method allows user choosing which property to be modified
我想构建一个这样的 class:
classdef myclass < handle
properties
v1 = struct('value', 100)
v2 = struct('value', 200);
end
methods
function plusone(obj, vars) % SHOULD BE MODIFIED SOMEHOW??
vars.value = vars.value + 1;
end
end
end
我的问题是,我应该如何编写方法 plusone
以便在命令 Window 中我可以 选择我要修改的 属性, 即我选择修改 属性 v2
:
a = myclass();
a.plusone(a.v2);
更新对象 a
的变量 v2
的字段 value
?还是我的思维方式有问题?
是的,您可以创建这样的方法,但您需要以不同方式传递对字段的引用:
methods
function plusone(obj, propName)
obj.(propName).value = obj.(propName).value + 1;
end
end
要调用该方法,请将引用作为字符串传递:
a = myclass();
a.plusone('v2')
我想构建一个这样的 class:
classdef myclass < handle
properties
v1 = struct('value', 100)
v2 = struct('value', 200);
end
methods
function plusone(obj, vars) % SHOULD BE MODIFIED SOMEHOW??
vars.value = vars.value + 1;
end
end
end
我的问题是,我应该如何编写方法 plusone
以便在命令 Window 中我可以 选择我要修改的 属性, 即我选择修改 属性 v2
:
a = myclass();
a.plusone(a.v2);
更新对象 a
的变量 v2
的字段 value
?还是我的思维方式有问题?
是的,您可以创建这样的方法,但您需要以不同方式传递对字段的引用:
methods
function plusone(obj, propName)
obj.(propName).value = obj.(propName).value + 1;
end
end
要调用该方法,请将引用作为字符串传递:
a = myclass();
a.plusone('v2')