How to delete all rows made out of a certain vector/array/row values from a matrix?

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?

Answers (1)

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 Comments

This only deletes one of the lines. Should I make a loop or is there an easier way?
activitydata_edited(modeRow,:)
ans =
1 1 5 5 5 5
1 1 5 5 5 5
1 1 5 5 5 5
1 1 5 5 5 5
1 1 5 5 5 5
1 1 5 5 5 5
activitydata_edited(modeRow,:) = []
%only deletes one of the rows
What is modeRow? If it is a vector of indices to all rows which match then it should delete all of them.
[uA,~,uIdx] = unique(activitydata_edited,'rows');
modeIdx = mode(uIdx); %mode convert implicit linear relationship to explicit input-output relation
modeRow = uA(modeIdx,:); %# rank #1
top10(1,:) = modeRow % just saving the vector before i delet it to recalculate
activitydata_edited(modeRow,:); %uncomment to see 6 vectors of [5 5 5 5 5 5] which is the mode
activitydata_edited(modeRow,:) = [] % length only changes by 1
i know, very frustrating I basically have a long list of vectors and i need to find which one is most used. I find 1st, record it, delete all of them. Find second, delete those too.... and so on. Need top 10 most used vectors.
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,: ) = []
@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.

Sign in to comment.

Products

Asked:

on 10 Mar 2017

Commented:

on 10 Mar 2017

Community Treasure Hunt

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

Start Hunting!