anonymousfunction函数的使用-Matlab高手Loren的技术日志(一).pdf
匿名函数(anonymousfunction)是Matlab中一种特殊的函数定义方式,它允许用户创建一个没有具体名字的函数。这种函数可以在需要的时候即时创建,并且直接在代码中调用。匿名函数在Matlab中的表现形式为@符号后跟函数的输入变量和函数体。相比于常规函数,匿名函数可以被用作简单的、一次性的、或者用于临时的函数表达式,它们不需要被保存在文件中,而是直接在命令窗口或脚本中定义并使用。 在给出的技术日志中,Loren讨论了如何正确地使用匿名函数来表达一个数学表达式。这里他举了一个特定的例子来说明一个常见的错误。原问题设计了一个上下限的门限判断,low和high分别设为3和7。当尝试用匿名函数直接表达这个条件时,出现了逻辑错误,这是因为Matlab在处理这个匿名函数时将其看作了两步的逻辑运算,而不是一个整体的区间判断。 具体来说,Matlab在计算表达式low<x<high时,会将其拆分为两步:首先计算low<x,由于x的值是3.14,结果是真(true),也就是逻辑值1。接下来,Matlab会将1与high进行比较,由于逻辑值1被Matlab理解为真,所以1<high也是真的,这就导致了一个错误的结果,即17被错误地判断为小于high。 为了解决这个问题,Loren给出了正确的匿名函数的写法,即使用逻辑运算符&来连接两个条件:(low<x)和(x<high),这样就能够正确地判断一个数值是否位于给定的区间内。即正确的匿名函数表达方式应该是 @(x)(low<x)&(x<high)。使用这种方式,当输入的x值为π时,会得到正确的结果,而当输入17时,结果为0,表明17不在区间内。 这种错误和正确的用法对比,向我们展示了在使用Matlab进行数学表达式编程时,需要格外注意逻辑运算和比较运算的优先级,以及它们如何在匿名函数中被Matlab解释和执行。如果逻辑判断是由多个比较运算组成的复杂表达式,那么使用括号明确分组是避免错误的关键。这不仅有助于理解代码的逻辑,也确保了代码的运行结果符合预期。 总结来说,匿名函数在Matlab中是一个非常实用的功能,特别是在需要快速定义小的、一次性函数时。不过,在使用时,需要注意如何正确地表达条件和逻辑运算,以避免在运算过程中出现错误。通过学习和理解这种函数的使用,Matlab用户可以编写更加灵活和简洁的代码。
- 粉丝: 512
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助