matlab如何提取程序所依赖的所有自定义函数文件到一个文件夹中去
如题,有时候拿到别人的matlab代码,有多个主文件和一堆子函数,这时候想将某个主文件和其用到的一些函数从一堆繁杂的程序中提取出来而不需要一个一个手动挑选,就可以利用matlab的
matlab.codetools.requiredFilesAndProducts
函数,这个函数在旧版的matlab中名称并不叫这个。
下面给出一个简单的示例程序:
clc
clear
filename = 'gun_PAL.m';%依赖父文件
dir_colections = [pwd '\collections'];%定义我要所收集的函数存放的文件夹。pwd表示当前目录
if exist(dir_colections,'dir') == 7%判断该文件夹是否存在,存在删除及其内容
rmdir(dir_colections,'s');
end
mkdir(dir_colections);%建立用于存放文件的文件夹
[fList,pList] = matlab.codetools.requiredFilesAndProducts(filename);%寻找文件的依赖文件
num_files = length(fList);%依赖文件数目
for k = 1:num_files
file_path = char(fList(k));%寻找每个依赖文件路径并字符化
[pathstr,f_name,ext]=fileparts(file_path);%依赖文件名
copyfile(file_path,[dir_colections '\' f_name ext])%将依赖文件拷贝到设定的文件夹下
end
温情提示:
- addpath(genpath(pwd));
可以快速将当前目录以及当前目录下的子文件夹添加到MATLAB搜索路径中去,相当于matlab设置路径中的“添加并包含子文件夹”功能。
- 其他关于matlab文件操作的命令可参考这里