How do I find out a struct is empty?

158 Ansichten (letzte 30 Tage)
Sean
Sean am 27 Sep. 2023
Bearbeitet: Sean am 28 Sep. 2023
There are instances in a .mat file where there is information and no information within a particular struct. I'm trying to figure out how to identify that within the struct where there is no furture information avaliable, it's an empty struct.
Let's say a .mat file contains below
A = struct;
A.B = '1';
A.C = '2';
A.D = '3';
but there is another file that contains only what's below
A = struct;
Depending on what which file, or mutiple files that contain various numbers of variables, how do I check if a struct is empty so that I'll be able to initialize the data that is not empty into EditFields of an application.

Akzeptierte Antwort

Voss
Voss am 27 Sep. 2023
It looks like you want to find out whether a struct has any fields or not, for which you can use isempty(fieldnames(A))
A = struct;
A.B = '1';
A.C = '2';
A.D = '3';
isempty(fieldnames(A))
ans = logical
0
A = struct;
isempty(fieldnames(A))
ans = logical
1
  2 Kommentare
Voss
Voss am 27 Sep. 2023
Bearbeitet: Voss am 27 Sep. 2023
Whether the struct is empty is another question, as empty and non-empty struct arrays can have fields or no fields.
A = struct('B',{}); % empty struct array with one field ('B')
is_empty_struct = isempty(A), has_no_fields = isempty(fieldnames(A))
is_empty_struct = logical
1
has_no_fields = logical
0
A = struct('B',{1 2 3}); % non-empty (size 1-by-3) struct array with one field ('B')
is_empty_struct = isempty(A), has_no_fields = isempty(fieldnames(A))
is_empty_struct = logical
0
has_no_fields = logical
0
A = rmfield(A,'B'); % non-empty struct array with no fields
is_empty_struct = isempty(A), has_no_fields = isempty(fieldnames(A))
is_empty_struct = logical
0
has_no_fields = logical
1
A = A([]); % empty struct array with no fields
is_empty_struct = isempty(A), has_no_fields = isempty(fieldnames(A))
is_empty_struct = logical
1
has_no_fields = logical
1
Sean
Sean am 28 Sep. 2023
Bearbeitet: Sean am 28 Sep. 2023
Thank you for helping me out, I tried to implement it, but I implemented a try catch statement and works.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Structures finden Sie in Help Center und File Exchange

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by