检查 Matlab struct, dynamic Field Value 是否为空

Check if Matlab struct, dynamic Field Value is empty

我有一个结构 x,带有动态字段,分别是动态字段名称。但基本上,只有 first Field 与我相关。 所以我想检查 first Field 的值是否为空,说出 1x1cell0x1cell..

我正在试验,例如与:

isempty(fieldnames(x))
isempty(x(1))

if isempty(x(1))
    msgbox('empty')
else
    msgbox('result')
end

但没有解决办法。有人知道吗?

说吧,检查struct的first字段的Value是否为空..

如果只有第一个字段与您相关,那么您可以进行以下操作:

获取结构的字段名列表

names=fieldnames(x);

获取第一个字段的大小

SizeOfFirstField=size(x.(names{1}));

然后您可以检查 SizeOfFirstField 中的第一个值在您的 if 条件中是 0 还是 1 :

if SizeOfFirstField(1)==0
    msgbox('empty')
else
    msgbox('result')
end

也许你也可以试试这个更短的形式:

isempty(fieldnames(x))

其中 x 是您的结构变量。