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 に答える