Hi Nathan,
I understand you want to plot X vs Y in Signal Labeler, But the Signal Labeler app in MATLAB does not directly support plotting x vs y instead of x vs t and y vs t. However, you can achieve your goal by using a different approach.
Assuming the data is small and manually Visualizable
- Plot x vs y using MATLAB's scatter function
- Use the interactive scatter plot to visually identify the circular movements and label them accordingly. You can use the ginput function to interactively select points on the scatter plot and assign labels programmatically.
Sample code for the same:
title('Scatter Plot of Random Data');
disp('Click on the scatter plot to label circular movements. Press enter when done.');
[x_circles, y_circles] = ginput();
When you have large data, here are alternative approaches to learn and extract unique shapes from x, y data without using Signal Labeler and Classification Learner:
- Manual labeling and feature extraction: Visually inspect the x, y data, manually label circular movements, and extract features like radius or frequency for further analysis.
- Clustering algorithms: Apply k-means clustering or DBSCAN to automatically group similar patterns in the x, y data, and identify circular motion clusters.
- Fourier analysis: Use Fourier analysis to extract frequency components from the x, y data, enabling identification of dominant frequencies associated with circular movements.
- Template matching: Create templates of circular movements from a subset of the data and compare segments of x, y data to identify similarity and detect circular patterns.
- Machine learning algorithms: Train SVM, random forest, or neural network models using labeled circular and non-circular data segments to classify new data as circles or noise.
These approaches offer different levels of automation and require experimentation to determine the best fit for your data and application.