当前位置:网站首页>函数优先顺序
函数优先顺序
2022-07-27 17:27:00 【jk_101】
本主题介绍 MATLAB 在当前作用域内的多个函数具有相同名称时如何确定要调用的函数。当前作用域包括当前文件、相对于当前运行的函数的可选私有子文件夹、当前文件夹以及 MATLAB 路径。
MATLAB 使用下面的优先顺序:
变量
在认定名称与函数匹配之前,MATLAB 会先在当前工作区中检查具有该名称的变量。
注意:如果创建与函数同名的变量,MATLAB 不能运行该函数,直到您从内存中清除该变量。
名称与显式导入的名称匹配的函数或类
对于具有复合名称(即名称包含多个部分、各部分以点相连)的函数,import函数允许仅使用复合名称的最后一部分调用该函数。当函数名称与显式(非基于通配符)导入的函数匹配时,MATLAB 使用导入的复合名称,并使其优先于同名的所有其他函数。
当前函数内的嵌套函数
当前文件内的局部函数
名称与基于通配符导入的名称匹配的函数或类
当函数名称与基于通配符导入的函数匹配时,MATLAB 会使用导入的复合名称,并使其优先于同名的所有其他函数,但嵌套函数和局部函数除外。
私有函数
私有函数是名称为 private 的子文件夹(即当前运行的文件所在的文件夹正下方的文件夹)中的函数。
对象函数
对象函数以输入参数列表形式接受特定类的对象。如果存在多个同名的对象函数,MATLAB 检查输入参数的类以确定要使用的函数。
@ 文件夹中的类构造函数
MATLAB 使用类构造函数创建各种对象(例如 timeseries 或 audioplayer),也可以使用面向对象的编程定义自己的类。例如,如果创建类文件夹 @polynom 和构造函数 @polynom/polynom.m,构造函数优先于路径中任何位置的名为 polynom.m 的其他函数。
加载的 Simulink 模型
当前文件夹中的函数
路径中其他位置的函数,按照显示顺序
在同一文件夹内确定函数优先级时,MATLAB 按以下顺序考虑文件类型:
内置函数
MEX 函数
未加载的 Simulink 模型文件,文件类型的顺序如下:
SLX 文件
MDL 文件
具有 .sfx 扩展名的 Stateflow 图
使用 MATLAB App 设计工具创建的 App 文件 (.mlapp)
带有 .mlx 扩展名的程序文件
P 文件(即带有 .p 扩展名的编码程序文件)
带有 .m 扩展名的程序文件
例如,如果 MATLAB 在同一文件夹中找到同名的 .m 文件和 P 文件,它使用 P 文件。因为 P 文件不会自动重新生成,所以确保在编辑 P 文件时重新生成该文件。
要确定 MATLAB 对特定输入所调用的函数,请在对 which 函数的调用中包括函数名称和输入。
函数优先顺序规则的更改
从 R2019b 开始,MATLAB 更改了名称解析规则,这会影响变量、嵌套函数、局部函数和外部函数的优先顺序。可以参考针对R2019b 对函数优先顺序的更改更新代码。
标识符在一个函数内只能用于一个目的。
没有显式声明的标识符可能不被视为变量
变量无法在父函数和嵌套函数之间隐式共享
复合名称解析优先级的更改
匿名函数可以同时包含已解析和未解析的标识符
import 函数的行为已更改。
基于通配符导入的优先级发生更改
完全限定的导入函数不能与嵌套函数同名
完全限定的导入函数会遮蔽同名的外层作用域定义
未发现导入时的错误处理
嵌套函数从父函数继承 import 语句
边栏推荐
- VS2017#include 'xxx.h'
- [basic knowledge of in-depth learning - 40] Why does CNN have more advantages than DNN in the field of images
- 2022爱分析·智慧社区厂商全景报告 厂商征集
- VALN 11.9
- 【C#】正序、逆序、最大值、最小值和平均值
- [RCTF2015]EasySQL-1|SQL注入
- [basic knowledge of deep learning - 41] quick start learning materials for deep learning
- File operation protection
- 第2章 入门
- Qt的QTextToSpeech类实现语音播报功能
猜你喜欢
随机推荐
VirtualBox: set shared folder
Global function
静态试验。2021.01 .13
Influxdb series (IV) TSM engine (storage principle)
Fabric上搭建Hyperledger caliper进行性能测试
In a real case, college students were cheated when taking orders. I hope you won't be cheated [painful lesson]
中国业务型CDP白皮书 | 爱分析报告
Introduction to socke programming
UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xff in position 0: invalid start byte
mysql数据库中的数据如何加密呢?mysql8.0自带新特性
贪心
JS find all nodes sibling childNodes children
Qt的QTextToSpeech类实现语音播报功能
Broadcastreceiver (broadcast)
pytorch 常见报错
BroadcastReceiver(广播)
Version announcement | Apache Doris 1.1 release version officially released!
Object常用方法学习【clone和equals】
Sharepreference (storage)
Install Talib Library under Anaconda






![[basic knowledge of deep learning - 37] solve the imbalance between positive and negative samples](/img/71/4052607951eb52862a6fd36366f216.png)


