中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 445查看
  • 0回复

[MATLAB] Matlab的函数优先顺序规则

[复制链接]


该用户从未签到

发表于 23-12-2023 21:18:58 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在matlab编程有时候多个项目情况下,很有可能出现同名函数,包括和matlab自带的函数重名,这个时候Matlab有一套函数执行的先后顺序。

MATLAB在当前作用域内的多个函数具有相同名称时如何确定要调用的函数。当前作用域包括当前文件、相对于当前运行的函数的可选私有子文件夹、当前文件夹以及 MATLAB 路径。

MATLAB 使用下面的优先顺序:

1、变量:在认定名称与函数匹配之前,MATLAB 会先在当前工作区中检查具有该名称的变量。

注意:如果创建与函数同名的变量,MATLAB 不能运行该函数,直到从内存中清除该变量。

Matlab的函数优先顺序规则w1.jpg

Matlab的函数优先顺序规则w2.jpg

2、名称与显式导入的名称匹配的函数或类:对于具有复合名称(即名称包含多个部分、各部分以点相连)的函数,import 函数允许仅使用复合名称的最后一部分调用该函数。当函数名称与显式(非基于通配符)导入的函数匹配时,MATLAB 使用导入的复合名称,并使其优先于同名的所有其他函数。

3、当前函数内的嵌套函数

4、当前文件内的局部函数

5、名称与基于通配符导入的名称匹配的函数或类:当函数名称与基于通配符导入的函数匹配时,MATLAB 会使用导入的复合名称,并使其优先于同名的所有其他函数,但嵌套函数和局部函数除外。

6、私有函数:私有函数是名称为 private 的子文件夹(即当前运行的文件所在的文件夹正下方的文件夹)中的函数。

7、对象函数:对象函数以输入参数列表形式接受特定类的对象。如果存在多个同名的对象函数,MATLAB 检查输入参数的类以确定要使用的函数。

8、@ 文件夹中的类构造函数:MATLAB 使用类构造函数创建各种对象(例如 timeseries 或 audioplayer),也可以使用面向对象的编程定义自己的类。例如,如果创建类文件夹 @polynom 和构造函数 @polynom/polynom.m,构造函数优先于路径中任何位置的名为 polynom.m 的其他函数。

9、加载的 Simulink? 模型

10、当前文件夹中的函数

11、路径中其他位置的函数,按照显示顺序

在同一文件夹内确定函数优先级时,MATLAB 按以下顺序考虑文件类型:

1、内置函数

2、MEX 函数

3、未加载的 Simulink 模型文件,文件类型的顺序如下:

1)SLX 文件

2)MDL 文件

4、具有 .sfx 扩展名的 Stateflow? 图

5、使用 MATLAB App 设计工具创建的 App 文件 (.mlapp)

6、带有 .mlx 扩展名的程序文件

7、P 文件(即带有 .p 扩展名的编码程序文件)

8、带有 .m 扩展名的程序文件

例如,如果 MATLAB 在同一文件夹中找到同名的 .m 文件和 P 文件,它使用 P 文件。因为 P 文件不会自动重新生成,所以确保您在编辑 P 文件时重新生成该文件。

要确定 MATLAB 对特定输入所调用的函数,请在对 which 函数的调用中包括函数名称和输入。

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 22-11-2024 21:05 , Processed in 0.396349 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.