7

我正在 MATLAB 中编写一些简单的面向对象的代码。我正在尝试调用我的一个类方法,但其定义中没有输入或输出参数。

函数定义:

function roll_dice

函数调用:

obj.roll_dice;

执行此操作时,MATLAB 会说:

??? Error using ==> roll_dice
Too many input arguments.

Error in ==> DiceSet>Diceset.Diceset at 11
obj.roll_dice;
(etc...)

任何人有任何想法可能导致它?是否有我不知道我正在传递的秘密自动参数?

4

2 回答 2

13

当您拨打电话时:

obj.roll_dice;

它实际上相当于:

roll_dice(obj);

obj传递给的“秘密”自动参数也是如此roll_dice。如果您重写该方法roll_dice以接受单个输入参数(即使您不使用它),事情应该可以正常工作。

或者,如果您确定您的方法roll_dice不会对类对象执行任何操作,则可以按照Dan 的建议将其声明为静态方法

有关 MATLAB 中面向对象编程的更多信息,请访问在线文档链接

于 2009-04-03T20:34:03.743 回答
3

我相信您也可以通过将 roll_dice 声明为静态方法来解决此问题。

于 2009-04-09T20:59:28.507 回答