filter a matix column values

4 views (last 30 days)
Boby S
Boby S on 13 Jun 2019
Answered: Bob Thompson on 13 Jun 2019
Hi
I have a matrix with X and Y values for a trajectory. Also, distance and speed values.
I want to make a criteria(filter) for my speed or distance column; then, I will take those ralated XY points and plot/scatter them with different color code.
(for example, I want to plot XY points which distance is >1.5 for them).
The second goal which I am not sure if it is possible, is to plot these points on a figure which I plotted all XY points.

Accepted Answer

KSSV
KSSV on 13 Jun 2019
Let X,Y,D,V be your (x,y) locations, distance and velocity respectively.
figure
hold on
plot(X,Y,'r')
plot(X(D>1.5),Y(D>1.5),'.b')
legend('path','locations D>1.5')

More Answers (1)

Bob Thompson
Bob Thompson on 13 Jun 2019
The filtering can be accomplished using logic indexing. Plotting is simply a matter of storing the data separately and plotting again. For the example I am going to assume you have a 2D array, where the columns are in the following order: [X Y S D]
data = [X Y S D]; % Just assigning values, your initial data shouldn't look anything like this.
plot(data(:,1),data(:,2)) % Plot all X and Y points
red = data(data(:,4)>1.5,:); % Filter all results for distance > 1.5
hold on % Plot more than one thing on the previous figure
plot(red(:,1),red(:,2)) % Plot reduced data as a second line

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!