快使用Ctrl+D收藏本站!本站早已不再维护,择期将关闭本站!!本站资源已全部失效,请勿打赏!!PLC培训创业官网 苏州实操派科技-点击访问-

MATLAB自学笔记(十三):MATLAB编程基础4

matlab仿真 파충충好气气 3525℃ 0评论

一、特殊函数

匿名函数

匿名函数没有函数名,也不是M文件,他只包含一个表达式与输出结果,类似于C中的define。创建方法如下

f为创建的函数句柄。函数句柄是一种间接访问函数的途径可以使用户调用函数的过程变得简单,且可以在执行函数时保存相关信息

子函数

在同一个M文件中,写入了多个函数的情况

  • 第一个出现的函数为主函数,该文件中其他函数为子函数
  • 保存文件时文件名应于主函数相同,且外部程序只能调用主函数
  • 子函数只能被当前M文件中主函数或子函数调用
  • 同一M文化的主函数、子函数的工作区都是彼此独立的。各个函数间的信息传递可以通过输入输出变量、全局变量或跨空间变量指令来实现
  • lookfor、help等指令不能用来获取M文件的子函数信息

举例如下,创建TEMP.m文件,写入如下程序

点击运行,输入3

私有函数与私有目录

私有函数是指私有目录private下的M函数文件,其主要性质为

  • 私有函数的构造与普通M文件完全一致
  • 调用:私有函数只能被private直接父目录下的M文件调用
  • 在M文件中,任何指令通过‘名称’对函数进行调用时,私有函数的优先级仅次于MATLAB内置函数与子函数
  • lookfor、help等指令不能显示一个私有函数文件的任何信息

二、重载函数

重载是计算机编程中非常重要的概念,常被用来处理功能类似,但变量属性不同的函数

用户可以编写两个同名但是传递参数数据类型不同的函数。当调用时,MATLAB会自动匹配参数数据类型,然后选择函数

三、eval函数与feval函数

eval函数

eval函数可以与文本变量一起用,实现有利的文本宏工具

  • eval(s):为使用MATLAB的注释器求表达式的值或包含文本字符串s的语句

举例如下,本例程共展示了eval分别计算4种不同类型的语句字符串

  • ‘表达式’字符串
  • ‘指令语句’字符串
  • ‘备选指令语句’字符串
  • ‘组合’字符串

feval函数

  • [y1, y2, …] = feval(‘FN’, arg1, arg2, …)

该指令的功能为用变量arg1,arg2,…来执行FN函数指定的计算

说明:

  • 在此,FN为函数名,不能是表达式
  • 在eval和feval函数通用的情况下,feval比eval的执行效率高
  • feval函数主要用来构造‘泛函’型M函数文件

四、向量化和预分配

向量化

要想让MATLAB最高速的工作,则需要把M文件中的算法向量化

其他语言一般使用for或do, MATLAB则是由向量或矩阵

预分配

若一条代码不能向量化,则可以通过预分配输出结果空间,来保存其中的向量或数组,用来加快for循环

五、函数的函数

  • 一个以标量为变量的非线性函数称为‘函数的函数’,即以函数名为自变量的函数
  • 这类函数包括求零点、最优化、求积分、常微分方程等

 

 

转载请注明:燕骏博客 » MATLAB自学笔记(十三):MATLAB编程基础4

赞赏作者

微信赞赏支付宝赞赏

喜欢 (0)or分享 (0)

如果您喜欢本站文章,感觉本站的资源对您有帮助,请狠狠点击下面

每累计赞助40元,即可让本站按最低配置运行一个月,感谢您的支持!

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址