Write for loop results in a matrix
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have an A(:,2) matrix with some x-y coordinates, and B(:,2) matrix with a list of gauge stations coordinates. So, I want to find the nearest gauge station for each line of A. I could get to the code above, but I couldn't find a way to put this in a loop which write the nearest B point for each A line in 'nstation'
dist=bsxfun(@hypot,B(:,1)-A(1),B(:,2)-A(1));
nstation = B(dist==min(dist),:);
2 Kommentare
Antworten (1)
Jan
am 19 Jul. 2018
X = B(:,1) - A(:,1).'; % >= R2016b ! Arithmetic expanding
Y = B(:,2) - A(:,2).';
dist2 = sum(X.^2 + Y.^2);
Now you can use this matrix to find the minimal distances. Use pdist for a more efficient calculation, which considers the symmetry.
0 Kommentare
Siehe auch
Kategorien
Mehr zu Creating and Concatenating Matrices 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!