MATLAB Answers

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

51 views (last 30 days)
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,

  0 Comments

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 4 Mar 2016
row_has_empty = any(cellfun(@isempty, YourCell), 2); %find them
YourCell(row_has_empty,:) = []; %delete them

  1 Comment

Mekala balaji
Mekala balaji on 4 Mar 2016
The second row & 4th column is empty, but it is not deleted using the above code.
Kindly help.

Sign in to comment.

More Answers (1)

Pruthvi Raj Gampalwar
Pruthvi Raj Gampalwar on 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'

  1 Comment

Sign in to comment.

Sign in to answer this question.