我在 MATLAB 中遇到一种情况,我想尝试将结构字段分配给新变量,如下所示:
swimming = fish.carp;
但是字段 carp
可能会或可能不会被定义。如果 carp
不是有效字段,是否可以指定默认值?例如,在 Perl 中我会写
my $swimming = $fish{carp} or my $swimming = 0;
其中 0 是默认值,或
指定分配失败时要执行的操作。似乎 MATLAB 中应该存在类似的东西,但我似乎找不到它的任何文档。为了代码的可读性,如果可以的话,我宁愿不使用 if
语句或 try/catch
block 。
最佳答案
您可以创建自己的函数来处理此问题并保持代码清晰。像这样的东西:
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
最好的,
关于matlab - MATLAB 中的 1 行 try/catch 等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29421138/