Sample evenly-ish vector of unevenly distributed indices

4 views (last 30 days)
Say I have a vector of indices
v = [v1 v2 v3 v4 v5] = [1 34 456 1345 4567]
I try to find a way to sample v in an evenly-ish way while keepking these points. Is there a quick way to do that instead of a loop over every range between two points [v_i v_j], I have numerous and long vectors...
  4 Comments
Voss
Voss on 10 Dec 2021
How about this:
vnew = min(v):max(v);
Now, as long as v contains only integer values, all elements of v are in vnew. And diff(vnew) is all 1s, so the difference is as constant as it can get.
Does that work?
Ouatehaouks
Ouatehaouks on 10 Dec 2021
Thanks for your answer. The thing is that the indices can be very large, so I want to refine v but not down to delta=1.

Sign in to comment.

Accepted Answer

Matt J
Matt J on 10 Dec 2021
Edited: Matt J on 10 Dec 2021
Perhaps as follows,
vnew = union( min(v):delta:max(v) ,v);
  6 Comments
Ouatehaouks
Ouatehaouks on 10 Dec 2021
Sorry I don't know how to accept the correct answer which is in your last comment.
Matt J
Matt J on 10 Dec 2021
Edited: Matt J on 10 Dec 2021
No problem. Our whole chain of comments is considered part of the "Answer".

Sign in to comment.

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!