How to delete entire row if any cell of the particular row is empty

36 vues (au cours des 30 derniers jours)
Hi, I have the below cell array matrix. Some cells are empty, and I want to delete entire row if any cell is empty(Ex: 2, 3,4). And my final output should be only row1 & row5.
Index name1 name2 visit
1 MM_vrx_ty_98u prb05k 20
2 M_rx_ty_8u prbkv
3 prb05k 50
4 MM_vrx_ty_98u 11
5 GG_VL_ty_4u 9
Kindly help. Sincerely,

Réponse acceptée

Walter Roberson
Walter Roberson le 4 Mar 2016
row_has_empty = any(cellfun(@isempty, YourCell), 2); %find them
YourCell(row_has_empty,:) = []; %delete them
  1 commentaire
Mekala balaji
Mekala balaji le 4 Mar 2016
The second row & 4th column is empty, but it is not deleted using the above code.
Kindly help.

Connectez-vous pour commenter.

Plus de réponses (1)

Pruthvi G
Pruthvi G le 26 Mar 2019
Input :
Matrix = [[{'a'};{'b'};{'c'};{''};{'b'};{'c'}],[{'a'};{'b'};{''};{'a'};{''};{'c'}],[{'a'};{''};{'c'};{'a'};{'b'};{'c'}]]
Matrix =
6×3 cell array
'a' 'a' 'a'
'b' 'b' ''
'c' '' 'c'
'' 'a' 'a'
'b' '' 'b'
'c' 'c' 'c'
Solution to delete complete Row if Empty cell is found
% Answer
Empty_Matrix=cellfun('isempty',Master_BC)
Matrix(any(Empty_Matrix(:,[1,2,3]),2),:)=[] % deleting the entire row
Output :
Matrix =
2×3 cell array
'a' 'a' 'a'
'c' 'c' 'c'
  2 commentaires
madhan ravi
madhan ravi le 26 Mar 2019
This answer was given before 2 years already.
Wolfgang McCormack
Wolfgang McCormack le 13 Mar 2021
@madhan ravi but this one helped me :D

Connectez-vous pour commenter.

Catégories

En savoir plus sur Creating and Concatenating Matrices 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