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')