MATLAB-SIMULINK建模记录:脚本工具1——运行指定路径下的所有.m脚本
用.m脚本实现simulink模块操作
需一次运行多个不同层级的.m文件,可通过脚本实现。
重要的语法——1、dir
用以显示当前文件夹下的所有文件:dir函数有几种不同的调用方式。
- dir(‘.’):会列出当前目录下的所有子文件夹和文件;
- dir(‘E:\Matlab’):会列出指定 - 目录下的所有子文件夹和文件;
- dir(‘E:\Matlab’,‘*.m’):则会列出指定目录下所有后缀为.m的文件。
在展示的结果中,".“代表当前文件夹,”…"代表父文件夹。如果要获取当前目录下实际的文件数目,需要从length(dir(‘.’))的结果中减去2
此外,使用通配符’‘可以指定返回特定类型的文件。例如,使用dir(’.txt’)可以列出当前目录下所有扩展名为.txt的文件。如果想要递归地列出当前目录及其子目录中所有扩展名为.txt的文件,则可以使用dir(‘**/*.txt’)。
重要的语法——2、strcat
用以串联两个或多个字符向量,使用示例:
s1 = 'Good';
s2 = 'morning';
s = strcat(s1, s2); % 结果为 'Goodmorning'
注意:如果输入参数中包含字符串数组,则结果也是字符串数组。如果输入参数中包含元胞数组,并且没有字符串数组,则结果是字符向量元胞数组。如果所有输入都是字符数组,则结果是字符数组。
此外,strcat 在处理字符数组输入时会删除尾部的 ASCII 空白字符,但对于元胞数组和字符串数组输入则不会删除尾部空白。
重要的语法——3、uigetdir
用于打开一个文件夹选择对话框,让用户选择一个文件夹并返回其路径。uigetdir 函数有多种调用方式,具体如下:
- 无参数调用:
baseDir = uigetdir;
这将打开一个对话框,显示当前工作目录中的文件夹,并返回用户选择的路径。如果用户点击取消或关闭对话框,函数将返回 0
- 指定初始路径:
baseDir = uigetdir('C:\');
这将打开一个对话框,初始定位到指定的路径(例如 C:\)。如果路径无效或为空,对话框将在当前工作目录中打开
- 指定初始路径和对话框标题:
baseDir = uigetdir('C:\', '选择文件夹');
这将打开一个对话框,初始定位到指定路径,并显示自定义的对话框标题
代码参考
%% 运行指定路径下的所有.m文件
clear;
% 用户选择指定路径
baseDir = uigetdir;
% 获取m脚本文件
filePath = getFilesPath(baseDir,'m',true);
for i=1:length(filePath)
run(filePath(i));
end
% 定义函数功能
function filepath = getFilesPath(baseDir, ext, findSubfile)
if findSubfile
dirOutput = dir([baseDir '/**/*.' ext]);
else
dirOutput = dir([baseDir '/*.' ext]);
end
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);
end