matlab as(assert dominance)

目录一.语法1.输入参数二.说明三.示例1.值在预期范围之内2.期望的数据类型3.预期的代码执行情况assert是条件为false时引发错误。一.语法assert(cond)assert(cond,msg)assert(cond,msg,A1,…,An)assert(cond,errID,msg)assert(cond,errID,msg,A1,…,An)1.输入参数cond-断言条件MATLAB表达式..

大家好,又见面了,我是你们的朋友全栈君。

目录

语法

说明

示例

值在预期范围之内

期望的数据类型

预期的代码执行情况


        assert是条件为 false 时引发错误。

语法

assert(cond)
assert(cond,msg)
assert(cond,msg,A1,...,An)
assert(cond,errID,msg)
assert(cond,errID,msg,A1,...,An)

​        断言条件,指定为有效的 MATLAB 表达式。如果 cond 为 false,assert 函数会引发错误。cond 可以包含关系运算符(例如 < 或 ==)和逻辑运算符(例如 &&、|| 或 ~)。使用逻辑运算符 and 和 or 创建复合表达式。MATLAB 按照运算符优先级规则从左至右计算复合表达式。

注意

        如果希望 MATLAB 转换错误消息中的特殊字符(例如 \t、\n、%s 和 %d),必须为 assert 指定多个输入参数。数值、字符或字符串数组。此输入参数提供与 msg 中的转换设定符相对应的值,用来替换这些转换设定符。

提示

  • 引发错误时,MATLAB 会捕获该错误的相关信息并将其存储在用作 MException 类的对象的数据结构体中。可以使用try/catch来访问异常对象中的信息。或者,如果程序由于异常而终止,并将控制权返回至命令提示符,则可以使用 MException.last

  • 如果断言失败发生在try块内,则 MATLAB 不会停止执行该程序。在本例中,MATLAB 将控件传递到catch块中。

说明

如果 cond 为 false,assert(cond) 会引发错误。

如果 cond 为 false,assert(cond,msg) 会引发错误并显示错误消息 msg。

​如果 cond 为 false,assert(cond,msg,A1,…,An) 会显示一条错误消息,其中包含格式设置转换字符,例如与 MATLAB® sprintf 函数一起使用的字符。msg 中的每个转换字符都会转换为 A1,…,An 中的一个值。

​如果cond 为 false,assert(cond,errID,msg) 会抛出错误并显示错误消息 msg,还会包含一个标示此异常的错误标识符。此标识符可用于区分错误,它还允许您控制在 MATLAB 遇到错误时系统做何反应。

assert(cond,errID,msg,A1,…,An) 会显示格式化的错误消息,还会包含标示异常的错误标识符。

示例

值在预期范围之内

        断言值 x 大于指定的最小值。

minVal = 7;
x = 26;

assert(minVal < x)

        表达式的计算结果为 true,断言通过。断言 x 的值介于指定的最小值和最大值之间。

maxVal = 13;

assert((minVal < x) && (x < maxVal))
Assertion failed.

        表达式的计算结果为 false。断言失败,MATLAB 引发错误。

期望的数据类型

        断言两个数字的乘积为双精度值。

a = 13;
b = single(42);
c = a*b;

assert(isa(c,'double'),'Product is not type double.')
Product is not type double.

        增强错误消息以便显示c的数据类型。

assert(isa(c,'double'),'Product is type %s, not double.',class(c))
Product is type single, not double.

预期的代码执行情况

        使用assert函数测试在正常的代码执行情况下不应出现的情况。如果系数为数值,计算的根也应为数值。使用指定系数和计算根的二次方程计算结果应为零。

function x = quadraticSolver(C)

validateattributes(C,{'numeric'},{'size',[1 3]})

a = C(1);
b = C(2);
c = C(3);

x(1) = (-b+sqrt(b^2-4*a*c))/(2*a);
x(2) = (-b-sqrt(b^2-4*a*c))/(2*a);
assert(isnumeric(x),'quadraticSolver:nonnumericRoots',...
    'Computed roots are not numeric')

y1 = a*x(1)^2+b*x(1)+c;
y2 = a*x(2)^2+b*x(2)+c;
assert(y1 == 0,'quadraticSolver:root1Error','Error in first root')
assert(isequal(y2,0),'quadraticSolver:root2Error','Error in second root')

end

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128640.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • JetBrains CLion 2021 激活码【中文破解版】

    (JetBrains CLion 2021 激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • 关机相关(shutdown,reboot)

    关机相关(shutdown,reboot)

    2021年12月17日
  • dump文件分析工具有哪些_如何解析xml文件

    dump文件分析工具有哪些_如何解析xml文件/前言/在讲解Mat工具之前我们先来看下几个关于Dump/文件的问题Dump文件是什么Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中我们拿到Dump文件有什么用的?假如JVM因为内存溢出的原因宕机了,而程序的日志里面并没有关于溢出所在对象的信息,此时我们就需要通过分析Dump文件来找到问题原因Dump文件怎么生成?第一种在启动JVM时指定参数 #指定生成Dump文件的异常类型 -XX:+HeapDumpOnOutOf

  • kettle视频教程[通俗易懂]

    kettle视频教程[通俗易懂]kettle实战视频教程分享,有需要的自取哈~kettle视频教程播放地址具体内容如下:文件和数据库表的互相转换处理数据库单表的全量同步开始学习数据库单表的增量同步数据库同步错误原因记录到oracle日志表多个数据库表融合到一个数据库业务表比较不同的数据库表进行数据的一致性处理通过配置文件做表的全量同步,一个作业统统搞定通过配置文件做数据表的增量同步,一个作业统统搞定整体数据库迁移(表全量和表增量)windows下的kettle作业调度Linux下的kettle作业调度.

  • python 请在微信客户端打开_如何实现‘请在微信客户端打开链接’

    python 请在微信客户端打开_如何实现‘请在微信客户端打开链接’想要实现请在微信客户端打开链接在代码中加入以下代码即可varua=navigator.userAgent.toLowerCase();varisWeixin=ua.indexOf(‘micromessenger’)!=-1;varisAndroid=ua.indexOf(‘android’)!=-1;varisIos=(ua.indexOf(‘iphone’)!=…

  • pycharm2021激活码_在线激活

    (pycharm2021激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~40Z9P7H9NN-eyJsaWNlbnNlSWQiOi…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号