function - 为什么我没有通过任何错误时会收到 "Too many input arguments"错误?

标签 function matlab parameters arguments

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

函数定义:

函数 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...)

有人知道是什么原因造成的吗?是否存在我不知道我正在传递的 secret 自动参数?

最佳答案

当您调用电话时:

obj.roll_dice;

实际上相当于:

roll_dice(obj);

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

或者,如果您确定您的方法roll_dice 不会对类对象执行任何操作,您可以将其声明为static method。作为Dan suggests .

有关 MATLAB 中面向对象编程的更多信息,here's a link to the online documentation .

关于function - 为什么我没有通过任何错误时会收到 "Too many input arguments"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715624/

相关文章:

java - Java Collections Framework 中的泛型类型和方法声明

python - 匹配两个列表中的字符串

c++ - 使用 glutDisplayFunc 绘图 (opengl)

javascript - 如何让 JavaScript 函数等待输入或值?

Matlab 在 OpenCV 中的差异

c++ - 在 C++ 中将整数数组作为参数传递?

javascript - includes() 不适用于所有浏览器

matlab - 在 matlab 中创建簇

Matlab 如何向量化 double for 循环?嵌套结构数组的设置值非常慢

java - 如何使用java运行junit测试