How do I extract a row of data from a cell array?

29 vues (au cours des 30 derniers jours)
Brad
Brad le 7 Mai 2014
Commenté : Bryan le 2 Oct 2018
I have a 3 x 4 cell array, (a), that looks like this;
'Due' 55000 1 100
'WFR' 55100 2 200
'Due' 55200 20 300
where column 1 is of char, and the others are doubles.
I'm attempting to extract the rows of data based on the values in the 3rd column being greater than 2 (20 in this case).
Desired output is cell b = 'Due' 55200 20 300
I'm using the following code;
b=a(~ismember(a(:, 3), [1 2]), :);
I keep getting the following error message;
"Input A of class cell and input B of class double must be cell arrays of strings, unless one is a string"
This is the first time I've attempted to extract rows of data from cell arrays. Am I doing something wrong? If so, how do I approach this problem in order to get b?

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 7 Mai 2014
b = a(cat(1,a{:,3}) > 2,:)
  3 commentaires
fei peng
fei peng le 19 Oct 2016
GOOD
Bryan
Bryan le 2 Oct 2018
Excellent! Thanks

Connectez-vous pour commenter.

Plus de réponses (1)

Sara
Sara le 7 Mai 2014
If you know which row you want to extract, you can do:
b = a(row,:);
  1 commentaire
Brad
Brad le 7 Mai 2014
Sara, I'm looking to extract the row based on a specific value in the 3rd column (which varies). I did try your approach and it works. But I need some ideas on how to approach this when the values in the 3rd column are not equal to 1 or 2. Thanks.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Type Identification dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by