0
点赞
收藏
分享

微信扫一扫

matlab中simulink文件批量修改版本

秀妮_5519 2022-04-26 阅读 187
matlab

高版本的matlab可以打开低版本的simulink文件(文件类型为.slx或.mdl),但低版本的matlab无法打开高版本的simulink文件。
由于版本升级、需要分享给别人等原因,常常需要修改slx文件的版本。一般来说,只需要将slx文件打开后保存为早期版本即可。这一方法已经有很多人给出了。
一般而言,正常使用中,上述方法已经足够大家使用。但少数情况下,比如将一段时间的资料全部分享给某人,而某些人因为电脑性能等问题,只安装了早期matlab版本,例如笔者遇见某些人在2022年还用着matlab2014b。为此,需要一种可以批量修改slx版本的方法。在csdn里,已经有大佬给出了一种方法,点击即可跳转。
但该文章中,仅给出了修改当前目录下所有slx文件的方法和单个文件修改的方法,并没有给出指定路径下的文件修改方法。为此,笔者撰写了下面的代码。
代码的核心部分在try,catch结构中,其余部分大家可以根据需要自行修改。

Path = "文件路径";
dtd = ["*.slx";"*.mdl"]; %两种可能的文件格式
Version = "R2018b";
for ti = 1:length(dtd)
    cata = dir(strcat(Path,dtd(ti))); %使用dir读取path中文件后缀名为dtd规定类型的文件
    for di = 1:length(cata)
        Filename = strcat(Path,cata(di).name);
        fname = string(strsplit(cata(di).name,"."));
        newname = strcat(Path,"new\",fname(1),Version,".",fname(2));
        try
            open_system(Filename)		%在simulink中打开slx文件
            % open_system(Filename,'loadonly') %仅加载slx文件,而不在窗口中打开slx文件
            try
                save_system(Filename,newname,"ExportToVersion",Version) %保存为指定版本
                try
                    close_system(Filename) %关闭slx文件
                catch
                    disp(strcat("cannot close",cata(di).name))
                end
            catch
                disp(strcat("cannot save",cata(di).name))
            end
        catch
            disp(strcat("cannot open",cata(di).name))
        end
    end
end
clear di ti fname dtd
举报

相关推荐

0 条评论