matlab - MATLAB 中的 1 行 try/catch 等价物

标签 matlab perl try-catch variable-assignment default

我在 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/

相关文章:

linux - 管道 Perl 脚本输出到 head -n 10 在打印 10 行后杀死脚本

PHP:如何从另一个类中的方法捕获异常?

java - 在 matlab classdef 中导入 java 类

r - Matlab 的 fminunc 函数的 R 等价物是什么?

perl - "0 but true"在 Perl 中意味着什么?

perl - 有没有办法在 Perl 中使用 Net::SMTP 附加 PDF 文件

Java while 循环 | true 如果测试值返回异常错误

当编译器说需要将其包装在 try catch 中时,Java spring 异常处理

c# - 在C#中以MAT格式保存数据

java - 如何在Mac 10.9.4(其实就是Mac虚拟机)上安装Matlab R2014a?