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

performanceplotspeed

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!

Best Answer

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