2

说我有以下变量

myClassName = 'myClass';

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

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

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

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

我怎么做?

4

3 回答 3

2

知道了。我发现这是:

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

做这项工作。

于 2012-11-24T16:33:27.713 回答
0

eval也可以使用:

eval([myClassName '(arg1,arg2,arg3)']);
于 2012-11-24T16:55:43.380 回答
0

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

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

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

于 2012-11-24T21:04:46.093 回答