setup

Класс: matlab.graphics.chartcontainer.ChartContainer
Пакет: matlab.graphics.chartcontainer

Настройка образца подкласса контейнера графика

Синтаксис

setup(obj)

Описание

setup(obj) устанавливает начальное состояние графика. Он выполняется один раз при создании объекта графика. Любые значения свойств, переданные в качестве аргументов пары "имя-значение" в метод конструктора графика, назначаются после setup выполняется метод.

Определите этот метод, чтобы выполнить код инициализации для каждого нового образца вашего класса. Например, можно использовать этот метод, чтобы создать базовые графические объекты и задать начальные значения свойств для этих объектов.

Входные параметры

расширить все

Объект класса, который наследует от matlab.graphics.chartcontainer.ChartContainer базовый класс.

Признаки

Abstracttrue
Protectedtrue

Чтобы узнать об атрибутах методов, см. «Атрибуты метода».

Примеры

расширить все

Определите класс, называемый 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.

x = 1:1:100;
y = 10*sin(x./5) + 8*sin(10.*x + 0.5);
c = SmoothPlot('XData',x,'YData',y);

Использование c для изменения цвета гладкой линии на красный.

c.SmoothColor = [1 0 0];

Вопросы совместимости

расширить все

Поведение изменено в R2020a

Введенный в R2019b