为什么要对函数的输入进行检查

在工程计算中,如果一个函数的输入有错误,我们总是希望能够尽早的通过对输入的检查,捕捉到这些错误,并及时终止程序。这样做的原因是,如果等到程序运行时出错或者运行结束后计算结果出错再查找,那就很迟了,而且通常debug的成本很高。在多人合作的项目中,如果一个开发人员提供了一个公用的API(应用程序接口)给别人使用,除了要提供说明文档规定输入的格式之外,API内部通常还需要对输入进行彻底的检查,因为开发人员不能保证每个使用者都会仔细地读文档,并且每次都能提供符合规定的数据,作为一个友好的API,一旦输入出了错,API应该及时提示用户,并且帮助诊断错误原因。同理,这样做的原因是,如果要等到程序运行时出错或者运行结束后计算结果出错,不但成本高,而且使用者也许根本无法查出错误的原因。 在MATLAB中,我们可以使用MATLAB提供的专门的函数validateattributes,validatestring和inputParser类来对输入进行检查。它们提供全面的检查功能和清晰的错误提示,是全套的参数检查解析方案。

validateattributes的基本使用

先介绍validateattributes的基本使用。假设在图像处理计算中,我们设计了一个函数叫做processImg ,用来对一张大小是500 x $500 的灰值图像进行处理,计算之前我们需要检查输入是否符合规定,这可以使用validateattributes函数来完成:

MATLAB实用知识,如何对函数的输入进行检查和解析?相关推荐

  1. MATLAB基础知识——范数求解函数norm

    一.范数的基础概念 矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度. 基于MATLAB语言,对应于向量和矩阵分别存在以下三种常用的范数,分别为:1范数(L1范数),2范数(L2范数),∞范数(L ...

  2. MATLAB 基础知识 数据类型 函数句柄 将一个函数传递到另一个函数

    您可以使用函数句柄作为其他函数(称为复合函数)的输入参数.这些函数基于某个范围内的值计算数学表达式.典型的复合函数包括 integral.quad2d.fzero 和 fminbnd. 例如,要计算自 ...

  3. 【Matlab】 构造函数时为函数输入设置默认值

    使用python等语言编程时,通常可以直接在函数的输入用"="为输入参数赋予默认值,最近使用matlab做项目时,发现matlab无法这样实现.在看了matlab文档后,发现nar ...

  4. Matlab基本知识概况

    为什么80%的码农都做不了架构师?>>>    MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环 ...

  5. MATLAB学习笔记2:MATLAB基础知识(下)

    阅读前请注意: 1. 该学习笔记是华中师范大学HelloWorld程序设计协会2021年寒假MATLAB培训的学习记录,是基于培训课堂内容的总结归纳.拓展阅读.博客内容由 @K2SO4钾 撰写.编辑, ...

  6. matlab中exp(liangx),Matlab基础知识

    <Matlab基础知识>由会员分享,可在线阅读,更多相关<Matlab基础知识(122页珍藏版)>请在人人文库网上搜索. 1.Lxy, China Jiliang Univer ...

  7. matlab基本知识(入门)

    matlab是一项很重要的工具,在图像处理的领域,可以快速实现算法的可行性.所以本人最近学了下matlab,这里介绍下matlab的一些基本知识,后面再写个matlab中数组,向量,和矩阵的相操作.然 ...

  8. 专题一matlab基础知识

    这是matlab最基础的语法解释部分,后面将会陆续的更新有关matlab的学习知识 专题一matlab基础知识 数值数据类型的分类 整型 无符号整数:无符号8位整数.无符号16位整数.无符号32位整数 ...

  9. matlab欠阻尼系统注释,MATLAB 实用教程:第5章MATLAB程序设计

    <MATLAB 实用教程:第5章MATLAB程序设计>由会员分享,可在线阅读,更多相关<MATLAB 实用教程:第5章MATLAB程序设计(31页珍藏版)>请在人人文库网上搜索 ...

最新文章

  1. Maven向本地仓库导入官方仓库没有的jar包
  2. Django输入日期返回第几天time
  3. Java中Array和ArrayList之间的9个区别
  4. 08 在C#程序中使用注释测试分析 1214
  5. CNKI学术趋势与万方数据的知识脉络
  6. 斐波那契数列n项的值。(递归和非递归算法Golang实现)
  7. 3-汇编语言中与内存访问相关的寄存器/操作(DS+数据段+SS/SP+栈相关操作)
  8. 迅雷地址转换 php,PHP迅雷/快车/QQ旋风下载地址与普通URL链接互转
  9. 核磁共振测量动物脂肪、水分、瘦肉、代谢
  10. 计算机驱动器程序,打开计算机CD驱动器的位置
  11. python必背的英语单词怎么写_背英语单词的最好方法
  12. 市场调研-氧化锇(VIII)市场现状及未来发展趋势
  13. pytest官方文档 6.2 中文翻译版(第十章):警告捕捉
  14. ThinkPHP中IP地址定位,包括IP地址库文件
  15. spark 终止 运行_如何在数据源运行ou时停止spark流
  16. jason by gson复习
  17. 小程序微信支付功能开发
  18. 为什么软件外包不再“起作用”了
  19. supervisor的用法
  20. 卸载计算机安全证书,如何卸载ssl证书_卸载根证书的操作指南_什么是SSL卸载,SSL卸载优点有哪些? - 沃通SSL证书...

热门文章

  1. HT for Web 3D游戏设计设计--汉诺塔(Towers of Hanoi)
  2. CentOS下软件的安装
  3. Jquery获取ckEditor的内容
  4. XP快速启动栏里的显示桌面没有了,其他的都还在,应该怎么再添加进去?
  5. 解决ASP.NET AJAX在frame及iframe中跨域访问的问题
  6. opencv鼠标操作,画矩形
  7. Leetcode 70. 爬楼梯 动态规划 c语言
  8. net-snmp交叉编译出现 undefined reference to dlopen,dlsym,dlclose错误
  9. python3入门与进阶笔记_我的Python3萌新入门笔记
  10. vue created 调用方法_深入解析 Vue 的热更新原理,偷学尤大的秘籍?