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

100 次查看(过去 30 天)
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 个评论
Benson Gou
Benson Gou 2020-10-14
编辑:Benson Gou 2020-10-14
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 2020-10-15
"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.

请先登录,再进行评论。

回答(2 个)

Ameer Hamza
Ameer Hamza 2020-10-14
  2 个评论
Benson Gou
Benson Gou 2020-10-14
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 2020-10-15
You need to apply isempty on a particular field of a struct. Something like this
tf = ismpty(Res_All_Meas(1).ind)

请先登录,再进行评论。


Stephen23
Stephen23 2020-10-15
编辑:Stephen23 2020-10-15
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.

类别

Help CenterFile Exchange 中查找有关 Structures 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by