# check the index of cell which were removed

1 view (last 30 days)
ha ha on 6 Mar 2018
Edited: Stephen23 on 6 Mar 2018
Let's say:
A : 4x1 cell class
A={cell_1 ;cell_2 ; cell_3 ;cell_4 }
A={ [] ;[999,222];[444,222,2000]; [] };
B is index matrix of cell A:
B=[1;2;3;4] %index matrix of cell A
If I wanna remove the "empty cell" out of A, I can use this code:
A_remove=A(~cellfun('isempty',A));
And with respect to A, the index matrix B will be:
B_remove=[2;3]; %remove the index of "empty cell"
How can to find "B_remove" matrix from A &B ??
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Stephen23 on 6 Mar 2018
Edited: Stephen23 on 6 Mar 2018
Using logical indices:
B_remove = cellfun('isempty',A)
B_keep = ~B_remove
If you really want the subscript indices then use find.
##### 2 CommentsShowHide 1 older comment
Stephen23 on 6 Mar 2018
Edited: Stephen23 on 6 Mar 2018
As my answer told you:
find(~cellfun('isempty',A))
If you can use them then logical indices are more efficient.

Sign in to comment.

### Community Treasure Hunt

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

Start Hunting!

Translated by