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

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!

 Réponse acceptée

James Tursa
James Tursa le 30 Mar 2020
Modifié(e) : James Tursa le 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 commentaire

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?

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by