EDA365电子论坛网

标题: 哪位大神知道MATLAB怎样查找并获得最接近的坐标位置对应的值? [打印本页]

作者: AustCor1    时间: 2020-12-15 13:21
标题: 哪位大神知道MATLAB怎样查找并获得最接近的坐标位置对应的值?
已知A=[x1,y1]大小是10*2,每对x1和y1可以理解为坐标,也就是位置。已知B=[x2,y2,z2]的大小是1000*3,每对x2和y2可以理解为坐标(位置),z2可以理解为这对坐标对应的值。有点类似于某个位置及这个位置对应的海拔。
2 P0 M" `+ U8 E* Y' |
) R% M3 m' s  p9 G9 k  E5 K比如A=
6 E3 }4 Z4 K& @/ |3 5
4 M, }+ X# k" a" |- W9 z2 5
& @6 w1 W( k! r& ^……# V9 Y$ Q" f/ Y  B. r# `
" w3 A1 e7 O4 M% M) `
B=
6 D0 U( q$ \+ }4 }" l6.6 7.6 150
% j: z9 w9 L9 M7 l7 b8.9 3.5 160
% C& a% Q: Q0 s7 Z9 ]  N; Y; M6 G7.8 5.1 188
. B% g2 _$ b% w3.2 5.5 177
! k" {9 w* K( D$ H1 x# N* A$ u7 s……) l2 v( x! O9 S5 Y5 d* k2 D$ w
; r3 x. U! A8 M/ l
现在想根据A的每对x1和y1,获得B里面同时满足min|x1-x2|和min|y1-y1|的(x2,y2)这个位置对应的z2值。可以理解为找到B中最接近A的位置的z2值。比如上面的例子中,和A的第一个坐标对(3,5)最接近的B中的坐标对位置就是(3.2,5.5),然后要的就是这个177的值。A有10对xy坐标,最终获得的就是10个这样的z2值。& Z! U, b, M8 U8 A1 ~2 d

. k" Y1 M- J2 `( ?6 d* v! X7 I请问如何实现呢?谢谢!. S" }( f4 G0 ]3 N

作者: NNNei256    时间: 2020-12-15 14:21
顶一个
作者: CCxiaom    时间: 2020-12-15 16:54
帮顶
作者: baqiao    时间: 2020-12-15 16:57
[m,n] = size(A);
6 `, w8 H2 A. ~/ n% u  [, W; soutput = zeros(1,m);& _2 ~/ ^& F7 H/ o( b7 R* a
for loop = 1:m
$ B+ ?$ _* c( |data = [A(loop,: );B(:,[1,2])];
) ?: w* O/ A/ c% UD = squareform(pdist(data));%compute the euclidean distance' \$ F- e) Z9 ~3 `5 [
D = D(1,2:end); % get the distance from point in B to the loop point in A4 W) ?- r7 `# C2 s+ [* B, [8 K+ }
index = find(D == min(D));
+ [1 r3 H- {3 a- ?7 Soutput(loop) = B(index,3);
9 t3 L- a% B8 j; }" Xend7 o6 s* \3 J2 l/ I! K% E3 g

6 D  C4 ?9 a" {; i4 G. a2 n你可以试试这个




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2