How to remove empty struct fields [ ] from a group a struct fields ?
60 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
vijay chandra
am 23 Nov. 2017
Beantwortet: Robert
am 12 Jun. 2020
A: [1X1 struct] B: [1X1 struct] C: [1X1 struct] D: [ ] E: [ ] F: [ ] G: [ ] ,...................like this some structure are there. I want to remove those empty fields from that froup of fields.
0 Kommentare
Akzeptierte Antwort
Jos (10584)
am 24 Nov. 2017
Does this do what you want?
% create a structure with empty fields
S.A = 'x' ; S.B = [] ; S.C = 1:5 ;
fn = fieldnames(S)
tf = cellfun(@(c) isempty(S.(c)), fn)
S2 = rmfield(S, fn(tf))
0 Kommentare
Weitere Antworten (2)
sourav malla
am 26 Jun. 2019
Bearbeitet: sourav malla
am 26 Jun. 2019
You can try like this:-
out = {t(~cellfun(@isempty,{t.places})).places};
t = cell2struct(out,{'places'},1);
3 Kommentare
MSani
am 27 Jun. 2019
@Stephen Thank you very much! This worked like a charm :)
How I should I then save the file? As I noticed that when I clicked on the save button, it seems to change the way the file is saved and messed up the array structures in the file.
Robert
am 12 Jun. 2020
% Create struct with empty fields.
s.a = 'notEmpty';
s.b = [];
s.c = '';
s.d = 12;
fields = fieldnames(s);
sOut = rmfield(s, fields(structfun(@isempty, s)));
sOut =
struct with fields:
a: 'notEmpty'
d: 12
0 Kommentare
Siehe auch
Kategorien
Mehr zu Structures 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!