How do i insert one value from one array to another array
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Lars Urban
am 2 Aug. 2022
Kommentiert: Lars Urban
am 3 Aug. 2022
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 Kommentare
Akzeptierte Antwort
Bruno Luong
am 2 Aug. 2022
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
Weitere Antworten (1)
David Hill
am 2 Aug. 2022
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 Kommentare
David Hill
am 2 Aug. 2022
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.
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!