How to remove particular row
1 view (last 30 days)
Show older comments
Kanakaiah Jakkula
on 25 Dec 2015
Commented: Kanakaiah Jakkula
on 26 Dec 2015
I have the folloing table:
Tool1 Mek Ar 10.0 40.5
Tool1 Lahi BM2 13.0 89.4
Tool1 Ar Ar 34.0 67.8
Tool1 Puni Raj 41.0 89.9
Tool1 Jak Ar 20.0 78.3
Tool1 Lahi Lahi 12.0 99.0
Tool1 N2 BM2 14.0 89.0
Tool1 Ar Mek 25.0 95.7
Tool1 Puni Puni 17.0 90.6
Tool1 Raj Jak 20.0 100.0
uncommon list:
Ar
BM2
N2
I want to remove a particular row if:
1. If the name in second column & third column (of any row) is equal (I mean same)
2. If the name in third column (of any row) belongs to uncommon list
Many thanks in advance.
1 Comment
Image Analyst
on 26 Dec 2015
Is it a table (hopefully), or a cell array? If it's a cell array, you should really use a table instead because they're easier to deal with, faster, and take up a lot less memory. Let me know if you don't even know the difference between a table (which was introduced in R2013b) and a cell array.
Accepted Answer
Azzi Abdelmalek
on 25 Dec 2015
Edited: Azzi Abdelmalek
on 25 Dec 2015
If A is your cell array and b the uncomon list
A={'Tool1' 'Mek' 'Ar' 10.0 40.5
'Tool1' 'Lahi' 'BM2' 13.0 89.4
'Tool1' 'Ar' 'Ar' 34.0 67.8
'Tool1' 'Puni' 'Raj' 41.0 89.9
'Tool1' 'Jak' 'Ar' 20.0 78.3
'Tool1' 'Lahi' 'Lahi' 12.0 99.0
'Tool1' 'N2' 'BM2' 14.0 89.0
'Tool1' 'Ar' 'Mek' 25.0 95.7
'Tool1' 'Puni' 'Puni' 17.0 90.6
'Tool1' 'Raj' 'Jak' 20.0 100.0 }
b={'Ar';'BM2';'N2'}
ii=cellfun(@(x,y) isequal(x,y) & any(ismember(b,y)),A(:,2),A(:,3))
A(ii,:)=[]
4 Comments
Azzi Abdelmalek
on 26 Dec 2015
Edited: Azzi Abdelmalek
on 26 Dec 2015
In your last comment, we understand that the condition is (condition 1 | condition 2). The solution will be
ii=cellfun(@(x,y) isequal(x,y) | any(ismember(b,y)),A(:,2),A(:,3))
A(ii,:)=[]
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!