Sample evenly-ish vector of unevenly distributed indices

4 vues (au cours des 30 derniers jours)
Ouatehaouks
Ouatehaouks le 10 Déc 2021
Modifié(e) : Matt J le 10 Déc 2021
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 commentaires
Voss
Voss le 10 Déc 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 le 10 Déc 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.

Connectez-vous pour commenter.

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Creating and Concatenating Matrices dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by