MATLAB 函数详解:定义、工作区、输入输出与多种函数类型
函数是一组协同完成任务的语句。MATLAB 函数定义在独立文件中,文件名与函数名一致。函数拥有独立的 局部工作区,与命令行的 基础工作区 隔离。支持多输入多输出。
函数语法
function [out1,out2,...,outN] = myfun(in1,in2,...,inN)
示例:求五数最大值
文件 mymax.m:
function max = mymax(n1,n2,n3,n4,n5) % This function calculates the maximum of five input numbers max = n1; if(n2 > max) max = n2; end if(n3 > max) max = n3; end if(n4 > max) max = n4; end if(n5 > max) max = n5; end
首行 function 关键字定义接口。紧随的注释为帮助文本,help mymax 可显示。调用:
mymax(34,78,89,23,11) % ans = 89
匿名函数
单语句内联函数,无需建文件。语法:
f = @(arglist) expression
示例:幂函数
power = @(x,n) x.^n; power(7,3) % 343 power(49,0.5) % 7 power(10,-10) % 1e-10 power(4.5,1.5) % 9.5459
主函数与子函数
函数文件首个为主函数(可外部调用),其后为子函数(仅文件内可见)。
示例:求二次方程根
文件 quadratic.m:
function [x1,x2] = quadratic(a,b,c) % 返回一元二次方程根 d = disc(a,b,c); % 调用子函数 x1 = (-b + d)/(2*a); x2 = (-b - d)/(2*a); end function dis = disc(a,b,c) % 子函数 dis = sqrt(b^2 - 4*a*c); end
调用 quadratic(2,4,-4) 返回 0.7321。
嵌套函数
定义在另一函数内部,共享外部函数工作区。
示例:嵌套版 discriminant
function [x1,x2] = quadratic2(a,b,c) function disc % 嵌套函数 d = sqrt(b^2 - 4*a*c); end disc; x1 = (-b + d)/(2*a); x2 = (-b - d)/(2*a); end
私有函数
置于 private 子文件夹,仅父文件夹函数可见,隐藏实现细节。
示例
private/disc.m:
function dis = disc(a,b,c) dis = sqrt(b^2 - 4*a*c); end
工作目录 quadratic3.m 调用私有函数。
全局变量
跨函数共享数据,需在所有相关函数及基础工作区用 global 声明。建议大写命名。
示例
% average.m function avg = average(nums) global TOTAL avg = sum(nums)/TOTAL; end % 脚本 global TOTAL; TOTAL = 10; n = [34,45,25,45,33,19,40,34,38,42]; av = average(n) % 35.5
MATLAB
- Stratasys FDM打印优化必知:Insight软件10大核心功能
- C++ 函数详解:从声明到调用的实战指南
- C 语言函数详解:定义、声明、调用与参数传递
- 掌握Verilog函数:高效RTL设计的复用利器
- MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
- MATLAB 变量深度解析:矩阵本质、赋值、多重赋值、查看与清理、长赋值、格式控制、向量创建
- MATLAB 常用命令速查:会话管理、系统操作、输入输出、矩阵数组、绘图可视化
- MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
- MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
- MATLAB 数值类型详解:存储、转换与范围查询
- MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
- 精通 Python Lambda 函数:实用示例与最佳实践