Extract two closest rows of a matrix

Hello,
How can I extract two closest rows of a matrix and set one of them to zero?
thank you.

3 Kommentare

dpb
dpb am 20 Mär. 2016
Closest to what and what defines "close"?
Well, here is the "set to zero" part
yourMatrix(closestRow, :) = 0;
to determine what scalar value you need for closestRow, you need to answer dpb's question.
I have two different matrixes of [x y width height] which the size of each matrix might vary in size over the time. I have merged them together and got one matrix as the result. Now I am planning to check for the two closest [x y] coordinates within this matrix and eliminate one.
In the following example, the first two rows of result matrix are closest to each other in [x y]. Then, either first row or second row need to be removed/or set to zero.
Matrix A =
385 208 108 108
matrix B =
398 223 96 96
113 225 114 114
Result Matrix=
385 208 108 108
398 223 96 96
113 225 114 114

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

dpb
dpb am 21 Mär. 2016

1 Stimme

d=pdist(M(:,2)); % find the pairwise differences
ix=find(min(d(1:end-1)); % shortest distance excluding wraparound of 3-1
M(ix,:)=[]; % remove that row

Weitere Antworten (0)

Kategorien

Tags

Gefragt:

am 20 Mär. 2016

Kommentiert:

am 21 Mär. 2016

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by