How to delete all rows made out of a certain vector/array/row values from a matrix?
Mostra commenti meno recenti
data=
[1 1 1 2 2 12;
2 18 5 5 5 5;
5 1 1 5 5 5;
4 11 13 2 2 12;
5 1 1 5 5 5]
... (2093 lines)
mode = [5 1 1 5 5 5]
I found a way to find the mode row. In this preview, it's [5 1 1 5 5 5]. How do I remove such rows from the matrix?
Risposte (1)
Adam
il 10 Mar 2017
data( idx, : ) = [];
will delete a row (or multiple rows), idx, from a matrix. Since you say you already have a way to find the row you want I assume this is all you are asking?
5 Commenti
Adam
il 10 Mar 2017
What is modeRow? If it is a vector of indices to all rows which match then it should delete all of them.
tban
il 10 Mar 2017
Adam
il 10 Mar 2017
I'm not really getting what is going on here and what exactly modeRow contains, e.g. this simple example works fine:
a = [1 1 1 1; 2 2 2 2; 3 3 3 3; 4 4 4 4; 5 5 5 5];
myIdx = [1 3];
a( myIdx,: )
a( myIdx,: ) = []
Guillaume
il 10 Mar 2017
@Tudor, since uA is a column vector, uA(modeIdx, :) is the same as ua(modeIdx), and since modeIdx is scalar, ua(ModeIdx, :) is scalar. So modeRow is scalar, so it's totally expected that only one row is removed.
modeRow = uIdx == modeIdx;
would fix your problem.
Categorie
Scopri di più su Matrices and Arrays in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!