finding the nearest valaue

I have two sets of value
s=
38.9906 27.8590 18.6908 25.0184 27.5565 24.7551
21.6141 30.9522 42.2398 52.9675 38.4323 45.0781
39.3954 41.1888 39.0694 22.0141 34.0112 30.1668
S1= 19.0865
36.2719
44.6415
I HAVE to compare 1st value of S1 with first values of s and display them
for example the nearest value in s is
18.6908
42.2398
39.0694
please help

1 commentaire

Image Analyst
Image Analyst le 19 Nov 2012
Modifié(e) : Image Analyst le 19 Nov 2012
What do you mean by the " first values of s"? It looks like you're identifying the entire column that contains the value of s closest to the first value of S1, so what does "first values of s" mean to you? To me the first value of s would be 38.9906.
By the way, is this your homework? (Sounds like a homework problem.)

Connectez-vous pour commenter.

 Réponse acceptée

Matt J
Matt J le 19 Nov 2012

1 vote

HINT:
abs(bsxfun(@minus,s,S1));

1 commentaire

Jan
Jan le 19 Nov 2012
Modifié(e) : Jan le 19 Nov 2012
+1: A good hint for a homework question. Thanks!
The term "nearest" is usually connected to the distance, e.g. the Euclidean norm.

Connectez-vous pour commenter.

Plus de réponses (1)

Azzi Abdelmalek
Azzi Abdelmalek le 19 Nov 2012

0 votes

s=[ 38.9906 27.8590 18.6908 25.0184 27.5565 24.7551
21.6141 30.9522 42.2398 52.9675 38.4323 45.0781
39.3954 41.1888 39.0694 22.0141 34.0112 30.1668]
s1= [19.0865
36.2719
44.6415]
out=arrayfun(@(x) find(abs(s-s1(x))==min(min(abs(s-s1(x))))),1:numel(s1),'un',0)
out=s(cell2mat(out)')

Catégories

Community Treasure Hunt

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

Start Hunting!

Translated by