亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> MATLAB

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

  1. Stratasys FDM打印优化必知:Insight软件10大核心功能
  2. C++ 函数详解:从声明到调用的实战指南
  3. C 语言函数详解:定义、声明、调用与参数传递
  4. 掌握Verilog函数:高效RTL设计的复用利器
  5. MATLAB 入门指南:矩阵实验室的核心能力与应用领域全景
  6. MATLAB 变量深度解析:矩阵本质、赋值、多重赋值、查看与清理、长赋值、格式控制、向量创建
  7. MATLAB 常用命令速查:会话管理、系统操作、输入输出、矩阵数组、绘图可视化
  8. MATLAB 数据类型完全指南:15 种基本类型、转换函数与类型判断函数速查表
  9. MATLAB 矩阵核心操作:创建、索引引用、子矩阵提取、行列删除、拼接与基本运算
  10. MATLAB 数值类型详解:存储、转换与范围查询
  11. MATLAB 字符串完全指南:创建、拼接、元胞数组与常用函数
  12. 精通 Python Lambda 函数:实用示例与最佳实践