MATLAB®属性定义的类的对象具有相同的优先级classdef
语法。如果你想实现一个接受图形对象作为它的第一个参数的方法(例如,一个坐标轴句柄),但是要分派给你的类的方法,定义MATLAB图形类低于你的类。
当计算包含多个类的对象的表达式时,MATLAB使用主要参数来确定调用哪个方法或函数。
下面是MATLAB如何调度响应函数调用:
根据论点的类别确定主要论点。
如果有一个主导参数,调用主导类的方法。
如果参数具有相同的优先级,则使用最左边的参数作为主导参数。
如果主参数的类没有定义一个带有被调用函数名称的方法,则使用该名称调用路径上的第一个函数。
属性指定MATLAB类的相对优先级InferiorClasses
类属性。下面是基本的语法:
classdef(InferiorClasses = {?class1,?类别2})类名称
下面的定义TemperatureData
类实现的专门化版本情节
绘制温度数据图。类情节
方法支持可变数金宝app量的输入参数,以允许坐标轴句柄作为第一个参数:
情节(obj)情节(ax, obj)
obj
的实例是TemperatureData
类和斧头
是一个轴
句柄。
MATLAB调用情节
方法,因为TemperatureData
类指定了matlab.graphics.axis.Axes
劣质的。
classdef(inferorclasses = {?matlab.graphics.axis.Axes}属性时间温度结束方法函数obj. log (x,y) = "温度数据"时间= x;obj。温度= y;结束函数情节(变长度输入宗量)如果Nargin == 1 obj = varargin{1};情节(obj.Time obj.Temperature)elseifNargin == 2 ax = varargin{1};obj =变长度输入宗量{2};情节(ax, obj.Time, obj.Temperature)elseifNargin > 2 ax = varargin{1};obj =变长度输入宗量{2};情节(ax, obj.Time, obj.Temperature变长度输入宗量{3:结束})结束datetick (“x”)包含(“时间”) ylabel (“温度”)结束结束结束
下面是对情节
分派到TemperatureData
情节
方法,而不是内置方法情节
功能,因为TemperatureData
对象优于轴对象。
x = 1:10;y =兰德(10)* 100;ax =轴;td = TemperatureData (x, y);情节(ax, td)
当你声明一个类低于你的类,并且两个类定义了一个同名的方法时,MATLAB会分派给你的类方法,而不考虑参数顺序。
假设TemperatureData
类定义了一个集
方法。属性的对象TemperatureData
类的用户数据
轴对象的属性:
td = TemperatureData (x, y);集(gca),“用户数据”td)
结果是调用TemperatureData
集
方法。MATLAB不调用内置的集
函数。
支持使金宝app用a集
函数的子类,实现集
方法调用内置的集
函数的第一个参数是下类的对象时。
函数集(变长度输入宗量)如果isa(变长度输入宗量{1},“matlab.graphics.axis.Axes”)内装式(“设置”变长度输入宗量{}):其他的...结束