【问题标题】:Calling an object dynamically in MatlabMatlab中动态调用对象
【发布时间】:2012-11-12 15:24:06
【问题描述】:

假设我有以下变量

myClassName = 'myClass';

我想调用myClass构造函数的一个实例,即。

myObject = myClass(arg1, arg2, ..., argn);

假设我想使用 myClassName 来调用它。

myObject = (myClassName)(arg1, arg2, ..., argn);      % something like that

我该怎么做?

【问题讨论】:

    标签: oop class matlab


    【解决方案1】:

    知道了。我发现这是:

    myFunc = str2func(myClassName);
    myClass = myFunc(arg1, arg2, ..., argn);
    

    完成这项工作。

    【讨论】:

      【解决方案2】:

      eval也可以用:

      eval([myClassName '(arg1,arg2,arg3)']);
      

      【讨论】:

      • str2func 还是更可取的。
      【解决方案3】:

      初始变量myClassName真的需要是字符串吗?我将其实现为:

      myClassName = @myClass;
      myObject = myClassName(arg1, arg2, arg3);
      

      这与使用 selfanswer 中的 str2func 调用非常相似,只是没有字符串操作,这会让某些人(例如,我)感觉不对。

      【讨论】:

        猜你喜欢
        • 2014-06-08
        • 2021-12-13
        • 1970-01-01
        • 1970-01-01
        • 2012-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-01
        相关资源
        最近更新 更多