How do i insert one value from one array to another array
1 次查看(过去 30 天)
显示 更早的评论
I have 2 arrays with coordinates. For example
A = [1,2;2,1;1,1;1,3;3,2]
B = [0.5,0.5;2,2]
I compute for every point in A the nearest Point from B. I use dsearchn
k = dsearchn(B,A)
Now I want to give every point in B the next points from A. Making for every point in B a list of nearest points from A. Like point B(2,:) ans = 2 , 2 has the next points A(1,:),A(2,:),A(4,:) and A(5,:). I have no clue how to do it right and efficient.
2 个评论
采纳的回答
Bruno Luong
2022-8-2
See if s is what you want or not (not clear for me)
A = [1,2;2,1;1,1;1,3;3,2]
B = [0.5,0.5;2,2]
k = dsearchn(B,A)
AA = accumarray(k, (1:size(A,1))', [], @(r) {A(r,:)});
s = struct('B', num2cell(B,2), 'A', AA)
s(1).B
s(1).A
s(2).B
s(2).A
更多回答(1 个)
David Hill
2022-8-2
Look at pdist2
A = [1,2;2,1;1,1;1,3;3,2] ;
B = [0.5,0.5;2,2];
pdist2(A,B)
2 个评论
David Hill
2022-8-2
I don't understand your comment. Each column above gives the distance between each point in B with all the points in A. You could sort each column and then index into A to provide the sorted listing of the closest points of A to each point in B.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!