Closest value between two vectors
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have two vectors k and l.
k l
1 5
9 8
12 32
203 1003
… …
I want to find for each value in k, if the closest next value is in k or l (if its in k, add + 1 to a counter, if it’s l, add +1 to another counter. Any help would be imesnsly appreciated! Thanks a lot!
6 commentaires
Réponses (1)
Andrei Bobrov
le 21 Nov 2017
Modifié(e) : Andrei Bobrov
le 21 Nov 2017
kl =[1 5
9 8
12 32
203 1003];
z = randi([1 1003],8,1);
[~,ii] = min(abs(kl - reshape(z,1,1,[])),[],2);
out = accumarray(ii(:),1);
for numel(K) ~= numel(L):
K = randi([-45 120],12,1);
L = randi([-15 300],18,1);
z = randi([-45 300], 8 ,1);
[~,ii] = min(abs([K(:);L(:)] - z(:)'));
adds = accumarray((ii(:) > numel(K)) + 1,1);
3 commentaires
Image Analyst
le 21 Nov 2017
Then just create kl.
kl = [k, l];
If k and l are different lengths, then please say so. Also say WHY you are wanting to do this.
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!