%% Example: Label Points and Regions of Interest in Signal
% Define a vector with two acute peaks and one flat peak. Use Signal Labeler to label the peaks and mark the flat peak as different from the others.

data = [25 8 15 5 6 10 10 3 1 20 7];

% Open Signal Labeler. Import the data vector. On the Labeler tab, click Import ▼, select Members from workspace, select the data signal in the dialog box that appears, click Import, and close the dialog box. Select the check box next to the signal name in the Labeled Signal Set Browser to display the signal in the time plot.
%
% Label the signal peaks. Start by creating a signal label definition. Click Add Definition ▼. In the dialog box, specify Label Name as Peak, Label Type as Point, and Data Type as numeric.
% With the Peak definition highlighted in the Label Definitions browser, select Peak Labeler in the Automate Value gallery. Click Auto-Label ▼ and select Auto-Label Signals. Click OK in the dialog box that appears. Signal Labeler labels the three peaks and annotates its locations.
%
% Create a sublabel for Peak to annotate the flat peak, which is the second of the three. With Peak still selected in the Label Definitions browser, click Add Definition ▼ and select Add sublabel definition. Specify Label Name as Flat, Label Type as ROI, and Data Type as logical.
% Select the point label for the flat peak. You can select the label by clicking it in the Labeled Signal Set Browser, in the time plot, or in the label viewer. Selecting the label highlights it in all three places. Select Flat in the Label Definitions browser. A shaded region appears on the signal plot. Move and resize the region until it encloses the flat peak. To accept a label, click the Accept check mark next to the Label button, press Enter, or double-click the shaded region.
%
%
% Export the labeled signal. Click Export ▼ and select Labeled Signal Set To File. Name the file peaks.mat. Click Export.
% Inspect the labeled signal set you created. Load peaks.mat into the MATLAB® Workspace. The labeledSignalSet object is called ls. Verify that the data source is the vector you created at the beginning. Inspect the signal and subsignal label definitions.

load peaks
src = getSignal(ls,1)'
lbl = getLabelDefinitions(ls)

%
% Copyright 2019 The MathWorks, Inc.