Определение класса с именем SmoothPlot который отображает набор данных с использованием синей пунктирной линии со сглаженной версией линии.
Чтобы определить класс, создайте файл с именем SmoothPlot.m содержит следующее определение класса с этими функциями:
XData и YData общие свойства, в которых хранятся данные координат x и y для исходной линии.
SmoothColor и SmoothWidth общие свойства, определяющие цвет и ширину гладкой линии.
OriginalLine и SmoothLine частные свойства, которые хранят Line объекты для исходных и сглаженных данных.
A setup метод, инициализирующий OriginalLine и SmoothLine.
Один update метод, который обновляет график при изменении пользователем значения свойства.
A createSmoothData метод, который вычисляет сглаженную версию YData.
classdef SmoothPlot < matlab.graphics.chartcontainer.ChartContainer
properties
XData (1,:) double = NaN
YData (1,:) double = NaN
SmoothColor (1,3) double {mustBeGreaterThanOrEqual(SmoothColor,0),...
mustBeLessThanOrEqual(SmoothColor,1)} = [0.9290 0.6940 0.1250]
SmoothWidth (1,1) double = 2
end
properties(Access = private,Transient,NonCopyable)
OriginalLine (1,1) matlab.graphics.chart.primitive.Line
SmoothLine (1,1) matlab.graphics.chart.primitive.Line
end
methods(Access = protected)
function setup(obj)
% Create the axes
ax = getAxes(obj);
% Create the original and smooth lines
obj.OriginalLine = plot(ax,NaN,NaN,'LineStyle',':');
hold(ax,'on')
obj.SmoothLine = plot(ax,NaN,NaN);
hold(ax,'off')
end
function update(obj)
% Update line data
obj.OriginalLine.XData = obj.XData;
obj.OriginalLine.YData = obj.YData;
obj.SmoothLine.XData = obj.XData;
obj.SmoothLine.YData = createSmoothData(obj);
% Update line color and width
obj.SmoothLine.Color = obj.SmoothColor;
obj.SmoothLine.LineWidth = obj.SmoothWidth;
end
function sm = createSmoothData(obj)
% Calculate smoothed data
v = ones(1,10)*0.1;
sm = conv(obj.YData,v,'same');
end
end
end
Далее создайте пару x и y векторы. График x и y путем вызова SmoothPlot метод конструктора, который обеспечивается ChartContainer класс. Укажите 'XData' и 'YData' аргументы пары имя-значение и возвращают объект как c.
Использовать c для изменения цвета гладкой линии на красный.