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 z
2 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 }" l
6.6 7.6 150
% j: z9 w9 L9 M7 l7 b
8.9 3.5 160
% C& a% Q: Q0 s7 Z9 ] N; Y; M6 G
7.8 5.1 188
. B% g2 _$ b% w
3.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; s
output = 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% U
D = 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 A
4 W) ?- r7 `# C2 s+ [* B, [8 K+ }
index = find(D == min(D));
+ [1 r3 H- {3 a- ?7 S
output(loop) = B(index,3);
9 t3 L- a% B8 j; }" X
end
7 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