finding the nearest valaue

3 visualizzazioni (ultimi 30 giorni)
Pat
Pat il 19 Nov 2012
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 Commento
Image Analyst
Image Analyst il 19 Nov 2012
Modificato: Image Analyst il 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.)

Accedi per commentare.

Risposta accettata

Matt J
Matt J il 19 Nov 2012
HINT:
abs(bsxfun(@minus,s,S1));
  1 Commento
Jan
Jan il 19 Nov 2012
Modificato: Jan il 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.

Accedi per commentare.

Più risposte (1)

Azzi Abdelmalek
Azzi Abdelmalek il 19 Nov 2012
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)')

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by