Clear Filters
Clear Filters

How to find the index of missing values in a cell array without looping through each element?

34 views (last 30 days)
S1 = struct();
S2 = struct();
C = {S1 S2 missing};

Accepted Answer

Voss on 11 Jul 2022
You can use cellfun to call ismissing on the contents of each cell:
S1 = struct();
S2 = struct();
C = {S1 S2 missing}
C = 1×3 cell array
{1×1 struct} {1×1 struct} {1×1 missing}
is_missing = cellfun(@ismissing,C)
is_missing = 1×3 logical array
0 0 1
idx_missing = find(is_missing)
idx_missing = 3
(That's not got much loops.)

More Answers (1)

Bharat Chandra Mukkavalli
Bharat Chandra Mukkavalli on 11 Jul 2022
You can use the "cellfun()" function to apply a function to all the contents in a cell array. Further documentation on cellfun() can be found here:
Refer to link here on finding the indices of non-empty cells in a cell array:
Hope this helps!


Find more on Structures in Help Center and File Exchange


Community Treasure Hunt

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

Start Hunting!