How to identify the approximate value from two different vectors?

3 views (last 30 days)
Hi, I have two different vectors where
A(Ref)=[14.553 14.100 90.4512 90.901]
B= [12.34 14.120 14.440 13.59 90.419 90.850 300.123]
I want to identify the approximate value of the A(Ref) vector from B vector. Can anybody please help me how to identify the A(Ref) values from B vector(approximate/closest)?
Output result should be
ans = [14.120 14.440 90.419 90.850]
from B
  2 Comments
James Tursa
James Tursa on 10 Sep 2015
How did you get your result? If I was looking for the closest match in B to the first value in A (14.553) I would have guessed your result would be 14.440. But you list 14.120. Is this a typo? Same comment for the 2nd element.
dpb
dpb on 10 Sep 2015
Perhaps the output is sorted in ascending order, James. That'd select the values for the first two but rearrange them.

Sign in to comment.

Accepted Answer

Image Analyst
Image Analyst on 10 Sep 2015
I agree with James that your output does not match your description. But see if this does what you want:
ARef = [14.553 14.100 90.4512 90.901];
B = [12.34 14.120 14.440 13.59 90.419 90.850 300.123];
for k = 1 : length(ARef)
[minDistance, indexOfMinDistance] = min(abs(ARef(k) - B));
out(k) = B(indexOfMinDistance);
end
% Show in command window:
out
Result:
out = 14.44 14.12 90.419 90.85
  2 Comments
D Bhuiyan
D Bhuiyan on 10 Sep 2015
Thanks for your feedback. Here I did a mistake, actually I would like to see: If two vectors are like that A(Ref)=[14.5534 14.5534 90.4512 90.4512], B= [12.3444 14.1201 14.4404 13.5999 90.419 90.850] How can I get the nearest values of A(Ref) from B? output result should be= [14.4404 14.1201 90.850 90.419] Thanks... D.B

Sign in to comment.

More Answers (1)

dpb
dpb on 10 Sep 2015
Assuming the above comment is true...
>> interp1(B,B,A,'nearest')
ans =
14.4400 14.1200 90.4190 90.8500
  2 Comments
D Bhuiyan
D Bhuiyan on 10 Sep 2015
Thanks for your feedback and I already did it. Here I did a mistake, actually I would like to see: If two vectors are like that A(Ref)=[14.5534 14.5534 90.4512 90.4512], B= [12.3444 14.1201 14.4404 13.5999 90.419 90.850] How can I get the nearest values of A(Ref) from B? output result should be= [14.4404 14.1201 90.850 90.419] Thanks... D.B
Image Analyst
Image Analyst on 10 Sep 2015
Again, for the second element, how is 14.5534 (second element of A) closer to 14.1201 (from B vector and also your output), than is 14.4404 (also from B vector)???

Sign in to comment.

Categories

Find more on Line Plots in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

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

Start Hunting!