Closest value between two vectors
이전 댓글 표시
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
KL
2017년 11월 21일
you want to compare every element in k with k and l? if so, the next element in k and the current element in l? for the above example of yours, what should be the output?
numnum
2017년 11월 21일
KL
2017년 11월 21일
I do not understand when you say ... closest value > is...
What does it mean?
...for k(2)= 9, closest value > is k(3)=12...
l(2) is 8, which is closer to 9 than 12.
and what happens to the last value of k? would you only compare it with l's last value (since there's no next element in k)?
numnum
2017년 11월 21일
KL
2017년 11월 21일
did you read my whole comment?
numnum
2017년 11월 21일
답변 (1개)
Andrei Bobrov
2017년 11월 21일
편집: Andrei Bobrov
2017년 11월 21일
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
numnum
2017년 11월 21일
Image Analyst
2017년 11월 21일
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.
numnum
2017년 11월 21일
카테고리
도움말 센터 및 File Exchange에서 Image Arithmetic에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!