Matlab 类方法中的输入参数错误太多

Matlab 类方法中的输入参数错误太多,matlab,matlab-class,Matlab,Matlab Class,我用MATLAB编写了一个类,如下所示: classdef sizeInfo properties end methods function [row column] = getSize(m) [row column] = size(m); end end end s=sizeInfo [r c]=s.getSize(data) Error using sizeInfo/getSize Too many input arguments. 当我使用此类的ge

我用MATLAB编写了一个类,如下所示:

classdef sizeInfo
properties
end

methods
    function [row column] = getSize(m)
        [row column] = size(m); 
    end
end
end
s=sizeInfo
[r c]=s.getSize(data)
Error using sizeInfo/getSize
Too many input arguments.
当我使用此类的
getSize
函数时,它总是报告如下错误:

classdef sizeInfo
properties
end

methods
    function [row column] = getSize(m)
        [row column] = size(m); 
    end
end
end
s=sizeInfo
[r c]=s.getSize(data)
Error using sizeInfo/getSize
Too many input arguments.

有人知道为什么吗?

类函数的第一个参数始终是对对象本身的引用,因此
函数[row-column]=getSize(m)
是一个没有参数的函数,而m是隐式传递的引用

classdef sizeInfo
properties
end

methods
    function [row column] = getSize(obj,m)
        [row column] = size(m); 
    end
end
end

一条建议:仔细阅读文档。在学习java之后,C++和Python我希望了解OOP。Matlab一次又一次地让我大吃一惊。

对于
getSize
的定义(不需要访问类的实例),您应该将其定义为:


什么是
数据
?如果你输入一个标量,你会得到什么?+1,但为什么会抱怨呢?将引用传递给self与Python的方式没有什么不同…?我不是在抱怨这种行为,但有没有尝试过在不使用java的情况下实现一个不会被
evalin('base','clear all')
破坏的单例模式?有时几乎不可能调试您的代码在客户环境中不工作的原因。将其定义为静态方法更具可读性通常我避免使用单例——几乎总是有更好的选择(请参阅)。记住:“试着建立一个连傻瓜都能使用的系统,只有傻瓜才会使用它。”:)