filtering data with a for loop and plot only filtered data

1 view (last 30 days)
I want to filter my acceleration values and plot them afterwards.
ay.data contains all my accelerations and I just want to plot those that are greater than 1.5 and less than -1.5.
The background is to filter that it is a curve and not just a swinging.
Thanks a lot!
I tried that:
quer = meas.ay.data;
n = size(quer);
i = zeros(n);
for x = 1:length(i)
if quer(x)> 4
disp(quer(x));
hold on;
plot(quer(x));
ii= quer(x);
end
end

Accepted Answer

Bob Thompson
Bob Thompson on 4 Nov 2019
This can be done much more simply with logic indexing.
quer = meas.ay.data;
quer = quer(quer > 1.5 | quer < -1.5);
plot(quer)
Looking at your loop, I'm not entirely sure if this is what you're looking for, but that's mostly because I don't understand how the value of acceleration relates to the matrix position of > 4.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!