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

Image Analyst
Image Analyst 2012년 11월 19일
편집: Image Analyst 2012년 11월 19일
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.)

댓글을 달려면 로그인하십시오.

 채택된 답변

Matt J
Matt J 2012년 11월 19일

1 개 추천

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

댓글 수: 1

Jan
Jan 2012년 11월 19일
편집: Jan 2012년 11월 19일
+1: A good hint for a homework question. Thanks!
The term "nearest" is usually connected to the distance, e.g. the Euclidean norm.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Azzi Abdelmalek
Azzi Abdelmalek 2012년 11월 19일

0 개 추천

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)')

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

태그

질문:

Pat
2012년 11월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by