How to remove empty struct fields [ ] from a group a struct fields ?

60 vues (au cours des 30 derniers jours)
vijay chandra
vijay chandra le 23 Nov 2017
Réponse apportée : Robert le 12 Juin 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.

Réponse acceptée

Jos (10584)
Jos (10584) le 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))

Plus de réponses (2)

sourav  malla
sourav malla le 26 Juin 2019
Modifié(e) : sourav malla le 26 Juin 2019
You can try like this:-
out = {t(~cellfun(@isempty,{t.places})).places};
t = cell2struct(out,{'places'},1);
  3 commentaires
Stephen23
Stephen23 le 27 Juin 2019
a.bt(cellfun('isempty',a.bt)) = []
MSani
MSani le 27 Juin 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.

Connectez-vous pour commenter.


Robert
Robert le 12 Juin 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

Catégories

En savoir plus sur Structures dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by