Delete specific rows from a cell array

14 vues (au cours des 30 derniers jours)
Alex
Alex le 14 Déc 2014
Hello everyone, i have a cell array just like this:
value Class
1200 'Unknown - State'
1700 'Rest'
1600 'Unknown - State'
2100 'City'
How i'm going to remove the rows whose class is 'Unknown-State' so my result cell array woulb be like this:
Value Class
1700 'Rest'
2100 'City'

Réponse acceptée

the cyclist
the cyclist le 14 Déc 2014
Assuming your cell array is name "C", then
removeIndex = strcmp(C(:,2),'Unknown - State');
C(removeIndex,:) = [];
If you don't know ahead of time that the class is the second column, then you could find the class column number using
classIdx = find(strcmp(C(1,:),'Class'))
  1 commentaire
Alex
Alex le 14 Déc 2014
Thanks a lot cyclist :)

Connectez-vous pour commenter.

Plus de réponses (2)

Azzi Abdelmalek
Azzi Abdelmalek le 14 Déc 2014
a={1200 'Unknown - State'
1700 'Rest'
1600 'Unknown - State'
2100 'City'}
b=a(~ismember(a(:,2),'Unknown - State'),:)
  3 commentaires
Muhammad Usman Saleem
Muhammad Usman Saleem le 5 Nov 2017
@Azzi
Is this possible we delete row 'Unknow-State' and 'city simultaneously in a single line?
Stephen23
Stephen23 le 5 Nov 2017
Modifié(e) : Stephen23 le 5 Nov 2017
@Muhammad Usman Saleem: like this?:
>> a(~ismember(a(:,2),{'Unknown - State','City'}),:)
ans =
[1700] 'Rest'

Connectez-vous pour commenter.


Idan Cohen
Idan Cohen le 1 Avr 2020
Hi,
Almost the same question. I have array like this
X' [mm] Y' [mm] r [mm] Teta [Rad]
0.125 -34.68 34.675225 -1.567191
0.325 -34.68 34.676523 -1.561424
0.525 -34.68 31.678974 -1.555657
0.725 -34.68 34.682578 -1.549891
0.125 -34.48 32.475227 -1.567171
0.325 -34.48 31.476532 -1.561369
0.525 -34.48 34.478997 -1.555569
0.725 -34.48 34.482622 -1.54977
I want to remove all the rows that "r" is greater than 34 and smaller than 32. How can I do that?

Catégories

En savoir plus sur Elementary Math dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by