首页 > MATLAB【备份】
MATLAB的函数类型(5种)
本节介绍 MATLAB 的 5 种函数类型,分别为:主函数、子函数、嵌套函数、私有函数和重载函数。
嵌套函数的语法如下:
一个嵌套函数可以被下列函数调用。
主函数
通常 M 文件中的第一个函数为主函数,主函数后可以是任意数量的子函数。主函数可以被该文件之外的其他函数调用,主函数的调用是通过存储该函数的 M 文件的文件名进行的。子函数
M 文件中可以包括多个函数,除主函数之外的其他函数称为子函数。子函数只能被主函数或该文件内的其他子函数调用。每个子函数以函数定义语句开始,直至下一个函数的定义或文件的结尾。各个子函数以任意顺序出现,但主函数必须最先出现。示例1
主函数和子函数,具体程序如下:function [avg, med] = newstats(u) % 主函数 % NEWSTATS Find mean and median with internal functions. n = length(u); avg = mean(u, n); med = median(u, n); function a = mean(v, n) % 子函数 % Calculate average. a = sum(v)/n; function m = median(v, n) % 子函数 % Calculate median. w = sort(v); if rem(n, 2) == 1 m = w((n+1) / 2); else m = (w(n/2) + w(n/2+1)) / 2; end当在 M 文件中调用函数时,系统首先判断是否为子函数,然后判断是否为私有函数,最后判断其是否为当前目录下的标准 M 文件函数或者系统内置函数。
嵌套函数
函数体可以定义其他的函数,这种内部函数称为嵌套函数。当 M 文件存在一个或多个嵌套函数时,M 文件中的所有函数必须以 end 结束。嵌套函数的语法如下:
function x = A(p1, p2)
...
function y = B(p3)
...
end
...
end
示例2
平级嵌套结构,具体程序如下:function x = A(p1, p2) ... function y = B(p3) ... end function z = C(p4) ... end ... end上面示例中,函数 A 嵌套了函数 B 和函数 C。
示例3
多层嵌套结构,具体程序如下:function x = A(p1, p2) ... function y = B(p3) ... function z = C(p4) ... end ... end ... end上面示例中函数 A 嵌套了函数 B,函数 B 嵌套了函数 C。
一个嵌套函数可以被下列函数调用。
- 该嵌套函数的上一层函数。
- 同一母函数下的同级嵌套函数。
- 任一低级别的函数。
示例4
嵌套函数的调用,具体程序如下:function A(x, y) % Primary function B(x, y); D(y); function B(x, y) % Nested in A C(x); D(y); function C(x) % Nested in B D(x); end end function D(x) % Nested in A E(x); function E(x) % Nested in D ... end end end示例中函数 A 可以调用函数 B 和函数 D,但不能调用函数 C 和函数 E;函数 B 可以调用函数 D 和函数 C,函数 D 可以调用函数 B 和函数 E;函数 C 可以调用函数 B 和函数 D。
私有函数
私有函数是指位于 private 目录下的 M 文件函数。私有函数的构造与普通 M 函数完全相同,私有函数只能被 private 目录的上一级目录下的 M 函数文件调用,而不能被其他目录下的任何 M 函数、M 脚本文件调用,也不能被上一级目录下的 M 脚本文件调用。重载函数
函数重载允许多个函数使用相同的函数名、不同的输入变量数据类型。函数调用时,系统根据函数输入变量的数据类型选择对应的函数。所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算