How to check if a element of a struct is empty?

78 visualizzazioni (ultimi 30 giorni)
Benson Gou
Benson Gou il 14 Ott 2020
Commentato: Ameer Hamza il 15 Ott 2020
Dear All,
I defined a struct and initialize it in the following way.
Res_All_Meas = struct([]);
[Res_All_Meas(1000).ind] = 0;
[Res_All_Meas(1000).res] = 0;
[Res_All_Meas(1000).xline] = 0;
[Res_All_Meas(1000).colnum] = 0;
Now in an iteration, I want to check if Res_All_Meas(i) is empty or not. If it is empty, I will assign some valeus to it.
Thanks a lot.
Benson
  3 Commenti
Benson Gou
Benson Gou il 14 Ott 2020
Modificato: Benson Gou il 14 Ott 2020
Yes, I want to check if the field contents are empty. The field contents for Res_All_Meas(i) are zero before Res_all_Meas(i) is assigned a value. But how?
Thanks.
Beneon
Stephen23
Stephen23 il 15 Ott 2020
"I want to check if the field contents are empty."
See my answer.
"The field contents for Res_All_Meas(i) are zero before Res_all_Meas(i) is assigned a value."
Not in your example. What you showed has all fields of every structure element Res_All_Meas(1:999) containing empty numeric arrays, and the last element Res_All_Meas(1000) for which each field contains 0.

Accedi per commentare.

Risposte (2)

Ameer Hamza
Ameer Hamza il 14 Ott 2020
  2 Commenti
Benson Gou
Benson Gou il 14 Ott 2020
I used isempty and tried several ways, but does not work. I think the isempty() works for number arrays.
Thanks a lot.
Benson
Ameer Hamza
Ameer Hamza il 15 Ott 2020
You need to apply isempty on a particular field of a struct. Something like this
tf = ismpty(Res_All_Meas(1).ind)

Accedi per commentare.


Stephen23
Stephen23 il 15 Ott 2020
Modificato: Stephen23 il 15 Ott 2020
fun = @(s) all(structfun(@isempty,s)); % check the fields of a scalar structure.
idx = arrayfun(fun,Res_All_Meas); % indices of those structure elements with ALL fields empty.

Categorie

Scopri di più su Structures in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by