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

40 Ansichten (letzte 30 Tage)
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,

Akzeptierte Antwort

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Pruthvi G
Pruthvi G am 26 Mär. 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'

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by