3

我在 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.

有谁知道为什么?

4

2 回答 2

2

类函数的第一个参数始终是对对象本身的引用,因此function [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 一次又一次地让我吃惊。

于 2013-10-22T12:54:45.327 回答
1

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

methods(Static)
    function [row column] = getSize(m)
        [row column] = size(m); 
    end
end
于 2013-10-22T14:01:03.183 回答