MATLAB Answers

How to delete the columns in a structure array

21 views (last 30 days)
Tomer
Tomer on 27 Feb 2020
Edited: Stephen on 27 Feb 2020
Hi.
I have a structure array HT (1 x 50000) with 20 fields. I want to delete the columns whose size is less than 10.
  2 Comments
Tomer
Tomer on 27 Feb 2020
All fields have same length, I want to delete that particular column whose field length is less than 10.

Sign in to comment.

Accepted Answer

More Answers (1)

Stephen
Stephen on 27 Feb 2020
Edited: Stephen on 27 Feb 2020
Where S is your structure:
X = arrayfun(@(s)any(structfun(@numel,s)<10),S);
S(X) = []
Tested:
>> S = struct('A',{rand(1,99),rand(1,9),rand(1,99)}, 'B',{rand(1,99),rand(1,9),rand(1,99)})
S =
1x3 struct array with fields:
A
B
>> X = arrayfun(@(s)any(structfun(@numel,s)<10),S);
>> S(X) = []
S =
1x2 struct array with fields:
A
B

Community Treasure Hunt

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

Start Hunting!

Translated by