How can plot every n-th element in a vector AND the last element?

18 views (last 30 days)
Hello everyone,
i want to plot just every n-th vector element in a for-loop, to speed up the plot loading time.
But I need also the last element to be plotted.
For example:
%p = [1,2,3,...,100,102,102]
n = 10
for i=10:n:102
k(i) = p(i)
...
end
The vector should than look like this: [10,20,30,40,50,60,70,80,90,100,102].
Also it would be great if i could avoid the error because of index exceeding the array bounds.
Thank you in advance!

Accepted Answer

James Tursa
James Tursa on 30 Mar 2020
Edited: James Tursa on 30 Mar 2020
If you don't care about possibly overplotting that last point twice, then simply
n = 10;
result = [p(n:n:end) p(end)];
If you want to make sure that last point doesn't overplot, then add some logic to avoid it. E.g.,
if( mod(numel(p),n) )
result = [p(n:n:end) p(end)];
else
result = p(n:n:end);
end
  1 Comment
Felix Richter
Felix Richter on 30 Mar 2020
First of all, thanks for your answer!
Manipulating my result vector like this would take a good logic to be stable.
Do you know any other way to boost the plot speed, without manipulating the result vector?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!