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/

相关文章:

python - 如何更改 tensorflow 示例上发布的示例中 DNNRegressor 中的隐藏单元?

parameters - Jenkins触发时间参数插件

.NET 参数化查询注入(inject)

javascript - 如何匿名函数/删除对象中的名称?

python - Matlab 到 Python - 矩阵/数组的形成和运算

matlab - 什么时候矢量化是比循环更好或更差的解决方案?

matlab - 为什么k-means每次聚类结果不同?

python - 重新分配从 Python 中的函数返回的值

c - typedef 函数指针类型

r - 选择要从 R 包加载的函数