检测.m文件是否为matlab或mathematica

时间:2017-01-27 10:25:31

标签: matlab wolfram-mathematica file-type

我已经在Vim中编辑了Matlab脚本一段时间了。最近我开始对将Mathematica工作转移到纯文本文件感兴趣,因此可以使用git管理它们并使用Vim进行编辑。不幸的是,Mathematica还对其包文件使用.m扩展名,因此不容易与Matlab脚本区分开来。因为我希望我的编辑能够为我做这项工作,所以我想知道是否有人提出了根据文件内容识别两者的想法。在大多数情况下,我会很好用,但我不愿意使用需要修改脚本的解决方案,例如添加注释。

1 个答案:

答案 0 :(得分:1)

A" .mat"或" .m"用MATLAB创建的save()函数创建的文件将始终以纯文本标识符" MATLAB"开头。因此,使用MATLAB语法,您可能会这样做:

% Set up a workspace variable and save to file
tmp = 1:10;
save('test.m');

% Open the file, read the first line and close again
fid=fopen('test.m');
firstline=fgetl(fid);
fclose(fid);

% Branch depending on file format
if ((numel(firstline) >= 6) && strcmp(firstline(1:6), 'MATLAB'))
    disp('This may well be a MATLAB file.');
else
    disp('This is probably not a MATLAB file.');
end