我在 MATLAB 中遇到了一种情况,我想尝试将一个 struct 字段分配给一个新变量,如下所示:
swimming = fish.carp;
但是字段
carp
可能会也可能不会被定义。如果 carp
不是有效字段,是否可以指定默认值?例如,在 Perl 中我会写my $swimming = $fish{carp} or my $swimming = 0;
其中 0 是默认值,
or
指定分配失败时要执行的操作。似乎在 MATLAB 中应该存在类似的东西,但我似乎找不到它的任何文档。为了代码可读性,如果我能帮忙的话,我宁愿不使用 if
语句或 try/catch
块。 最佳答案
您可以创建自己的函数来处理此问题并保持代码相当清晰。就像是:
swimming = get_struct(fish, 'carp', 0);
和
function v = get_struct(s, f, d)
if isfield(s, f)
v = s.(f); % Struct value
else
v = d; % Default value
end
最好的,