现在的位置: 首页 > 综合 > 正文

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

2014年02月21日 ⁄ 综合 ⁄ 共 578字 ⁄ 字号 评论关闭

这个机制就像是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

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

抱歉!评论已关闭.