How to remove particular row
1 次查看(过去 30 天)
显示 更早的评论
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 个评论
Image Analyst
2015-12-26
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.
采纳的回答
Azzi Abdelmalek
2015-12-25
编辑:Azzi Abdelmalek
2015-12-25
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 个评论
Azzi Abdelmalek
2015-12-26
编辑:Azzi Abdelmalek
2015-12-26
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,:)=[]
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!