How to remove particular row
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Kanakaiah Jakkula
el 25 de Dic. de 2015
Comentada: Kanakaiah Jakkula
el 26 de Dic. de 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 comentario
Image Analyst
el 26 de Dic. de 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.
Respuesta aceptada
Azzi Abdelmalek
el 25 de Dic. de 2015
Editada: Azzi Abdelmalek
el 25 de Dic. de 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 comentarios
Azzi Abdelmalek
el 26 de Dic. de 2015
Editada: Azzi Abdelmalek
el 26 de Dic. de 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,:)=[]
Más respuestas (0)
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!