我已经使用结构编写了很多Matlab代码,并且我有重复出现以下问题。
我经常需要测试字段是否存在且不为空。到目前为止,我的解决方案是:
if isfield(var, 'field')
if ~isempty(var.field)
...
当一个或另一个测试失败时,我需要执行相同的操作。在这些情况下,解决方案远非优雅。例如:
if isfield(var, 'field')
if ~isempty(var.field)
fieldOk = true;
else
fieldOk = false;
end
else
fieldOk = false;
end
更好的解决方案是同时进行两项测试。我可以写一个包含所有这些的函数,但我想知道是否有一个原生的Matlab解决方案。
答案 0 :(得分:2)
怎么样:
if isfield(var, 'field') && ~isempty(var.field)
fieldOk = true;
else
fieldOk = false;
end
如果X && Y
为真,则逻辑运算符Y
只评估X
。
Have a look here。因此,这正是您所需要的。但你可能不得不扭转局面:
if ~isempty(var.field) && isfield(var, 'field')