类方法输入参数错误太多

时间:2013-10-22 12:26:14

标签: matlab matlab-class

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

classdef sizeInfo
properties
end

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

当我使用此类getSize函数时,它总是会报告如下错误:

s=sizeInfo
[r c]=s.getSize(data)
Error using sizeInfo/getSize
Too many input arguments.

任何人都知道为什么?

2 个答案:

答案 0 :(得分:2)

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

classdef sizeInfo
properties
end

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

一条建议:仔细阅读文档。在学习了Java,c ++和python后,我希望能够理解oop。 Matlab一次又一次让我感到惊讶。

答案 1 :(得分:1)

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

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