我在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.
任何人都知道为什么?
答案 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