- Matlab 教程
- MATLAB - 首页
- MATLAB - 概述
- MATLAB - 特性
- MATLAB - 环境设置
- MATLAB - 编辑器
- MATLAB - 在线
- MATLAB - 工作区
- MATLAB - 语法
- MATLAB - 变量
- MATLAB - 命令
- MATLAB - 数据类型
- MATLAB - 运算符
- MATLAB - 日期和时间
- MATLAB - 数字
- MATLAB - 随机数
- MATLAB - 字符串和字符
- MATLAB - 文本格式化
- MATLAB - 时间表
- MATLAB - M 文件
- MATLAB - 冒号表示法
- MATLAB - 数据导入
- MATLAB - 数据输出
- MATLAB - 数据归一化
- MATLAB - 预定义变量
- MATLAB - 决策制定
- MATLAB - 决策
- MATLAB - If End 语句
- MATLAB - If Else 语句
- MATLAB - If…Elseif Else 语句
- MATLAB - 嵌套 If 语句
- MATLAB - Switch 语句
- MATLAB - 嵌套 Switch
- MATLAB - 循环
- MATLAB - 循环
- MATLAB - For 循环
- MATLAB - While 循环
- MATLAB - 嵌套循环
- MATLAB - Break 语句
- MATLAB - Continue 语句
- MATLAB - End 语句
- MATLAB - 数组
- MATLAB - 数组
- MATLAB - 向量
- MATLAB - 转置运算符
- MATLAB - 数组索引
- MATLAB - 多维数组
- MATLAB - 兼容数组
- MATLAB - 分类数组
- MATLAB - 元胞数组
- MATLAB - 矩阵
- MATLAB - 稀疏矩阵
- MATLAB - 表格
- MATLAB - 结构体
- MATLAB - 数组乘法
- MATLAB - 数组除法
- MATLAB - 数组函数
- MATLAB - 函数
- MATLAB - 函数
- MATLAB - 函数参数
- MATLAB - 匿名函数
- MATLAB - 嵌套函数
- MATLAB - Return 语句
- MATLAB - 无返回值函数
- MATLAB - 局部函数
- MATLAB - 全局变量
- MATLAB - 函数句柄
- MATLAB - 滤波函数
- MATLAB - 阶乘
- MATLAB - 私有函数
- MATLAB - 子函数
- MATLAB - 递归函数
- MATLAB - 函数优先级顺序
- MATLAB - Map 函数
- MATLAB - Mean 函数
- MATLAB - End 函数
- MATLAB - 错误处理
- MATLAB - 错误处理
- MATLAB - Try...Catch 语句
- MATLAB - 调试
- MATLAB - 绘图
- MATLAB - 绘图
- MATLAB - 绘制数组
- MATLAB - 绘制向量
- MATLAB - 条形图
- MATLAB - 直方图
- MATLAB - 图形
- MATLAB - 二维线图
- MATLAB - 三维图
- MATLAB - 格式化绘图
- MATLAB - 对数坐标轴绘图
- MATLAB - 绘制误差条
- MATLAB - 绘制三维等值线图
- MATLAB - 极坐标图
- MATLAB - 散点图
- MATLAB - 绘制表达式或函数
- MATLAB - 绘制矩形
- MATLAB - 绘制频谱图
- MATLAB - 绘制网格曲面
- MATLAB - 绘制正弦波
- MATLAB - 插值
- MATLAB - 插值
- MATLAB - 线性插值
- MATLAB - 二维数组插值
- MATLAB - 三维数组插值
- MATLAB - 多项式
- MATLAB - 多项式
- MATLAB - 多项式加法
- MATLAB - 多项式乘法
- MATLAB - 多项式除法
- MATLAB - 多项式的导数
- MATLAB - 变换
- MATLAB - 变换
- MATLAB - 拉普拉斯变换
- MATLAB - 拉普拉斯滤波器
- MATLAB - 高斯-拉普拉斯滤波器
- MATLAB - 逆傅里叶变换
- MATLAB - 傅里叶变换
- MATLAB - 快速傅里叶变换
- MATLAB - 二维逆余弦变换
- MATLAB - 向坐标轴添加图例
- MATLAB - 面向对象
- MATLAB - 面向对象编程
- MATLAB - 类和对象
- MATLAB - 函数重载
- MATLAB - 运算符重载
- MATLAB - 用户定义类
- MATLAB - 复制对象
- MATLAB - 代数
- MATLAB - 线性代数
- MATLAB - 高斯消元法
- MATLAB - 高斯-约旦消元法
- MATLAB - 简化行阶梯形式
- MATLAB - 特征值和特征向量
- MATLAB - 积分
- MATLAB - 积分
- MATLAB - 二重积分
- MATLAB - 梯形法则
- MATLAB - 辛普森法则
- MATLAB - 其他
- MATLAB - 微积分
- MATLAB - 微分
- MATLAB - 矩阵的逆
- MATLAB - GNU Octave
- MATLAB - Simulink
- MATLAB - 有用资源
- MATLAB - 快速指南
- MATLAB - 有用资源
- MATLAB - 讨论
MATLAB - 函数优先级顺序
函数优先级顺序,简单来说,就是 MATLAB 遵循的一套规则,用于决定在有多个同名函数或变量时使用哪个。就像一个等级制度,MATLAB 用它来确定选择哪一个。
MATLAB 遵循以下优先级顺序:
变量
如果一个名称在当前工作区中被识别为变量,MATLAB 将将其用作变量。
示例
x = 5; y = x + 2;
在这个示例中,x 是一个变量,MATLAB 识别它。
具有显式导入的函数或类
如果函数或类名称与显式导入的名称匹配,则它具有优先级。
示例
import MyPackage.myFunction; result = myFunction();
这里,来自 MyPackage 的 myFunction 被显式导入并使用。
嵌套函数
当前函数内的函数优先。
示例
function outer()
x = 10;
function inner()
x = 5;
end
end
在这种情况下,inner 中的 x 优先于 outer 中的 x。
局部函数
当前文件内的函数具有优先级。
考虑以下脚本 myScript.m
示例
function result = myScript() x = 3; y = localFunction(); end function z = localFunction() z = 7; end
在这个示例中,使用同一文件中的 localFunction。
使用通配符导入的函数或类
如果一个函数与基于通配符的导入匹配,则它具有优先级,除了嵌套函数和局部函数。
示例
import MyPackage.*; % Imports all functions in MyPackage result = myFunction();
这里,如果 myFunction 通过通配符导入,则它具有优先级。
私有函数
名为“private”的子文件夹中的私有函数具有优先级。
在 MATLAB 中,私有函数是指专门设计用于单个 MATLAB 脚本或函数内部使用的函数,它们通常存储在与使用它们的脚本相同的文件夹中的名为“private”的子文件夹中。
% In the folder containing your script /private/myPrivateFunction.m
当您在与这个“private”子文件夹相同的文件夹中有一个脚本时,位于“private”子文件夹中的任何函数都优先于位于其他地方的同名函数。
在上面的示例中,如果您在包含 myPrivateFunction.m 的“private”子文件夹的同一文件夹中有一个脚本,则 MATLAB 将优先使用该脚本中的 myPrivateFunction,这使得它成为组织和管理脚本特定函数的一种便捷方式。
对象函数
对象函数由输入参数的类决定。
object = MyClass(); result = object.myMethod();
在 MyClass 对象上调用的 myMethod 调用该特定对象函数。
MATLAB 根据输入参数的类确定使用哪个对象函数。当您在对象上调用函数时,例如 object.myMethod(),MATLAB 将自动调用与该对象类关联的方法。
这确保了对象的特定行为被执行,允许您与对象交互并根据其类和特征修改它们。
在上面的示例中,result = object.myMethod();,myMethod 是一个在 MyClass 类对象上操作的函数,当创建该类的对象时,MATLAB 会相应地使用它。
类构造函数
创建对象时,类文件夹中的构造函数优先。
myObj = MyClass();
这里,使用来自 @MyClass 文件夹的 MyClass 构造函数。
在 MATLAB 中的面向对象编程中,类构造函数是一个特殊的函数,用于创建类的实例,这些实例称为对象。当您使用类构造函数创建对象时,MATLAB 将优先考虑位于类文件夹中的构造函数,而不是其他同名函数。
这确保了该类的对象被正确初始化,并且可以在创建期间进行自定义。在您的示例中,myObj = MyClass();,MATLAB 特别使用位于 @MyClass 文件夹中的构造函数函数来初始化 myObj 对象,使其可以使用定义的类属性和方法。
加载的 Simulink 模型
如果 Simulink 模型已加载,则它们具有优先级。
在 Simulink 的上下文中,如果您在 MATLAB 会话中打开了多个 Simulink 模型或加载了多个 Simulink 模型,那么当您执行与 Simulink 相关的任务时,这些模型将优先于其他函数或变量。这确保了您的 Simulink 环境通过使用当前加载的模型中的组件和设置无缝运行,从而允许有效地进行建模和仿真,而不会受到无关函数或变量的干扰。它有助于维护 Simulink 工作的完整性和一致性。
当前文件夹中的函数
与您的脚本相同的文件夹中的函数优先。
这意味着,如果您在与您的脚本或 MATLAB 文件相同的文件夹中存储了函数,则这些局部函数优先。MATLAB 将选择当前文件夹中的函数,而不是 MATLAB 路径上其他位置的同名函数。这有助于确保您的代码使用适合您项目需求的特定局部函数。
路径上其他位置的函数
MATLAB 路径上的函数按其出现的顺序进行评估。
当 MATLAB 无法在当前文件夹中或通过其他特定优先级规则找到函数时,它会查看放置在其搜索路径上的函数。MATLAB 路径上的函数将被考虑,并且它们将按其在路径上的出现顺序进行评估。这提供了一种访问和使用不在当前文件夹中的函数的方法,从而方便地在各种项目中处理库和常用函数。