如何从代码中更改MATLAB首选项,而不是从菜单中更改?

时间:2014-08-15 13:59:15

标签: matlab

我有一个MATLAB首选项,我已经找到了如何从首选项菜单(一般> MAT-Files> MAT文件保存格式)进行检查,但是想要以编程方式更改它以便我可以分发更改startup.m文件。我找不到了。

有人知道怎么做和/或建议在哪里看?

感谢。

2 个答案:

答案 0 :(得分:3)

要做到这一点,我相信您需要编辑matlab.prf文件,这可以以编程方式完成...

我们想要更改的行是

MatfileSaveFormat=xxxxx

其中xxxxx可以分别为Sv6Sv7Sv7.3与-v6,-v7和-v7.3相关。

所以要查找我们想要更改的行,将文件加载到单元格数组中,找到包含文本'MatfileSaveFormat='的元素的位置,并将该元素替换为'MatfileSaveFormat=Sv7.3'(或者为所需的版本),最后用更新的版本覆盖文件。

pref = regexp( fileread(fullfile(prefdir,'matlab.prf')), '\n', 'split');
pref{find(~cellfun(@isempty,regexp(pref,'MatfileSaveFormat=')))}=...
    'MatfileSaveFormat=Sv7.3';

fid = fopen(fullfile(prefdir,'matlab.prf'), 'w');
fprintf(fid, '%s\n', A{:});
fclose(fid);

注意:在2013a中,这不会在查看时更新设置,但会影响来自save()的文件类型

修改了以下内容以说明matlab.prf中尚未存在的行,如果首选项从未更改过,则会出现这种情况。

pref = regexp( fileread(fullfile(prefdir,'matlab.prf')), '\n', 'split');
loc = find(~cellfun(@isempty,regexp(pref,'MatfileSaveFormat=')));

if isempty(loc); pref{end+1} = 'MatfileSaveFormat=Sv7.3';
else;            pref{loc} = 'MatfileSaveFormat=Sv7.3';
end

fid = fopen(fullfile(prefdir,'matlab.prf'), 'w');
fprintf(fid, '%s\n', A{:});
fclose(fid);

答案 1 :(得分:1)

您可能希望查看here以获得解决方案。基本上Yair通过访问“matlab.prf”文本文件显示如何修改首选项,如下所示:

edit(fullfile(prefdir,'matlab.prf'));

希望有所帮助!