函数重载

类可以通过实现名字相同的方法来重新定义MATLAB函数,这就是重载。在定义跟已有MATLAB类型类似的特别类时,重载很有用。例如,可以对类对象实现关系操作、绘图函数和其它常用的MATLAB函数。[大谦MATLAB,dqmatlab点com]

重载一个MATLAB函数:

定义一个名字相同的要重载的函数。

确保方法的变量列表接受类对象,MATLAB用于确定调用哪个版本。

在方法中进行必要步骤来实现函数。例如,访问对象属性来操作数据。

下面的代码中,MyData类定义一个Data属性,用于保存绘图数据。该类覆盖bar函数并给图形添加一个标题。

code.matlab
classdef MyData
	properties
		Data
	end
	methods
		function obj=MyData(d)
			if nargin > 0
				obj.Data=d;
			end
		end
		function bar(obj)
			y=obj.Data;
			bar(y,'EdgeColor','r');
			title('My Data Graph')
		end
	end
end

bar方法与MATLAB的bar函数名称相同。但是,这里的bar方法需要一个MyData对象作为输入变量。因为该方法是为MyData对象定制的,所以它能从Data属性提取数据并创建定制的图形。

下面创建一个MyData对象:

code.matlab
>> y=rand(1,10);
>> md=MyData(y);

调用使用对象的方法:

code.matlab
>> bar(md)

也可以使用点标注:

code.matlab
>> md.bar