Filter löschen
Filter löschen

Extract two closest rows of a matrix

1 Ansicht (letzte 30 Tage)
amir
amir am 20 Mär. 2016
Kommentiert: amir am 21 Mär. 2016
Hello,
How can I extract two closest rows of a matrix and set one of them to zero?
thank you.
  3 Kommentare
Image Analyst
Image Analyst am 20 Mär. 2016
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.
amir
amir am 20 Mär. 2016
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
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

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by