声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1763|回复: 3

[编程技巧] MATLAB提供了几种不同的函数可以在程序中应用

[复制链接]
发表于 2006-5-12 20:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
MATLAB提供了几种不同的函数可以在程序中应用
A. 匿名函数 :是MATLAB函数的一种简单形式,不要求有m文
件。它只包含一个MATLAB表达式、任意多个输入和输出。你可以在
MATLAB命令窗或者是M函数文件或者是脚本文件中定义它。语法:f =
@(arglist)expression。例如: sqr=@(x)x.^2; 调用格式为 a=sqr(5);
(与inline结合讲解)

B. 主函数与子函数:所有非匿名函数都需要在m文件中定义。
每个M文件都要求有一个主函数,它最先出现在该m文件中。主函数的
范围比子函数要广。也就是说,主函数可以在M文件外部调用(在命令
窗口或者是其他的M文件中),而子函数则不行。子函数只在主函数和
该M文件的其他子函数中可见。

C. 私有函数:私有函数是主M文件函数的一种。它唯一的特征
是它只能够在一个特定的限定函数群中可见。如果你想约束函数的访
问,或者当你选择不让外面看到你执行的是哪个函数的时候,这就很有用了。
私有函数驻留(放在)以专有名称 private命名的子目录下。他们只是对
其父目录中的函数是可见的。例如:…。因为私有函数是对外部(父目
录外)不可见的,因此他们可以采用与其他目录下函数相同的名字。这
在当你想创建自己特定的函数的新版本而想在另外目录保存原来版本的
函数的时候很有用。因为MATLAB先查询私有函数,再寻找标准M函数。

D. 嵌套函数:你可以在任意一个MATLAB M函数体内部定义函
数。它们称之为外部函数的嵌套函数。这要注意,matlab以前的版本是
不支持在一个函数内部再定义其他函数的:
function x = nestFun(p1,p2)
x1=nestFunIn(p2);
function y=nestFunIn(p3)
y=2*p3;
end
x=x1+p1;
end

其中A与D是以前的版本所不具备的功能,不过
我觉得D不值得提倡。
回复
分享到:

使用道具 举报

 楼主| 发表于 2006-5-12 20:15 | 显示全部楼层
由于不太会发,请版主取消浏览限制
发表于 2006-5-13 17:26 | 显示全部楼层
谢谢分享
发表于 2006-5-16 19:54 | 显示全部楼层
了解
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-20 13:30 , Processed in 0.076464 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表