gpt4 book ai didi

matlab - 使用 MATLAB 命令保存特定文件

转载 作者:行者123 更新时间:2023-12-01 15:08:50 24 4
gpt4 key购买 nike

我正在尝试将模型保存在最旧的 MATLAB 版本中,如下所示我查找每个文件夹和子文件夹以找到任何 .mdl 或 .slx 以将其保存为 2007b 版本

我遇到的问题是:

  1. 如果我只是寻找一个扩展,它会起作用,而我想知道在每个 .mdl 和 .slx 上执行此操作。
  2. save_system 占用太多资源时间

你知道我怎样才能得到所有的 .mdl 和 .slx 吗?有没有优化的保存方式?

谢谢

rootPath = fullfile('M:\script\ytop','tables');
files = dir(rootPath );

for ii = 3:numel(files)

x = fullfile(rootPath ,files(ii).name);
cd(x);
mdl = { dir('*.mdl'),dir('*.slx')}; % here it works if only I set dir('*.mdl')
for jj = 1:numel(mdl)
load_system(mdl(jj).name);
save_system(mdl(jj).name,mdl(jj).name, 'SaveAsVersion','R2007b');
end

end

最佳答案

%here you used {} which created a cell array of two structs. cat creates a single struct which.
mdl=cat(1,dir('*.mdl'),dir('*.slx'));
for jj = 1:numel(mdl)
[~,sysname,~]=fileparts(mdl(jj).name);
load_system(mdl(jj).name);
%use only sysname without extension. R2007b is mdl only. You can't store files for R2007b in slx format
save_system(sysname,sysname, 'SaveAsVersion','R2007b');
%close system to free memory.
close_system(sysname);
end

仅应用所需的修复程序会导致您的代码出现一种奇怪的行为。对于 mdls,文件将替换为原始文件,对于 slx,将在原始文件旁边创建一个 mdl。您可能想在加载后添加一个 delete(mdl(jj).name)

关于matlab - 使用 MATLAB 命令保存特定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28632020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com