matlab如何实现检测参数异常后停止整个程序的机制

这个机制就像是C语言里面的<stdio.h>中的exit(0),能让程序退出而不显示各种错误。虽然matlab是脚本语言,没有编译链接运行时错误之分。但是当程序规模很大时,也需要参数检查,如果传过来一个空的参数,直接程序停止运行也是很有必要的。现在我知道的有3种办法:

1.使用error函数。具体内容可以自行help。举一个简单的例子:

function [ B ] = testBFunc( A )
    if  0 == A
        error('A  == 0 ! ');
    else
        B = 1;
    end
end

这样如果穿过来一个为0的数,就成就会停止,并且在控制台上显示:

Error using testBFunc (line 3)
A  == 0 !


Error in test1 (line 5)
testBFunc(0); 

2.使用try-catch机制。这个与C++中的比价类似。但是也挺麻烦的,我就不多说了。

3.这个办法比较巧妙,利用了matlab的返回值来实现:

function [ B ] = testBFunc( A )
    if  0 == A
        B = 0;
        disp('参数错误,程序退出');
        return;
    else
        B = 1;
    end
end



然后在调用它的函数中判断:

clear all;
close all;
clc

res = testBFunc(0);
if 0 == res
    return;
end

这个方法的问题就在于,有些算法程序,返回值什么很不确定,在调用它的函数中很难判断。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值