Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 在MATLAB-Simulink项目中查找未使用的变量和函数

我有一个涉及许多m文件和mdl文件的复杂的MATLAB-Simulink项目。一些m文件定义了在其他m文件中使用的变量(我知道设计不好,但这是旧代码)。还有一些不再使用的功能。

我需要一种自动的方法来查找未使用的变量和函数,以便可以删除它们并简化整个过程。理想情况下,我应该具有一个脚本/工具,该脚本/工具将项目的根目录名称作为输入,扫描子目录中的所有文件,并输出所有未在任何m文件或mdl文件中使用的变量和函数。

我知道我可以找到mdl文件中未使用的变量(请参见提示和技巧-Simulink模型中的跟踪变量 )。我想将该方法应用于项目中的所有文件。

我检测未在m文件中使用的变量的想法是将所有m文件临时组合到一个文件中,并在上运行mlint 。还有更好的主意吗?



回答:

除了完成将所有m文件粘贴到一个文件中以运行MLINT的繁琐(并且可能容易出错)的任务之外 ,您还有其他一些选择...

如果所有文件都放在一个文件夹中,最简单的方法是转到“当前文件夹”浏览器,单击“ 操作”按钮 ,然后选择报告>代码分析器报告



这将打开一个新窗口,显示当前目录中每个m文件的MLINT结果:



如果您希望使用脚本来自动化该过程,而不必单击菜单选项,那么MathWorks File Exchange上的一些提交( 此处此处 )似乎是在目录结构上递归地工作,而不是单个目录。

另外,这是一些示例代码,它们将对单个目录执行您想要的操作:

dirData = dir; %# Get data on the current directory contents fileIndex = ~[dirData.isdir]; %# Get an index for the files fileNames = {dirData(fileIndex).name}; %# Get the file names [~,~,ext] = cellfun(@fileparts,fileNames,... %# Get the file extensions 'UniformOutput',false); mFileIndex = strcmp(ext,'.m'); %# Get an index for the m-files cellfun(@mlint,fileNames(mFileIndex)); %# Run MLINT on each m-file 您可以通过这种方式扩展文件名(和路径)的收集,以对目录树进行递归操作 ,然后对所收集的结果文件集运行MLINT。



更多&回答...
poster 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 23:48


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.