我有一些图形样式保存在文件->“导出设置”下访问的“导出设置”对话框中。
有没有办法以编程方式加载我的一种样式?IE。我目前需要多次点击鼠标来加载我想要的样式,然后将其应用于图形,然后告诉它导出并为文件命名。我觉得这一切都应该通过几个命令来完成,但我找不到正确的信息。
我有一些图形样式保存在文件->“导出设置”下访问的“导出设置”对话框中。
有没有办法以编程方式加载我的一种样式?IE。我目前需要多次点击鼠标来加载我想要的样式,然后将其应用于图形,然后告诉它导出并为文件命名。我觉得这一切都应该通过几个命令来完成,但我找不到正确的信息。
我在这个线程的底部找到了这个解决方案:
% create an example fig that we want to format with style file 'foo'
plot(rand(14,10));
% get style sheet info
snam='foo'; % The name of your style file (NO extension)
s=hgexport('readstyle',snam);
%apply style sheet info
fnam='myfig.jpeg'; % your file name
s.Format = 'jpeg'; %I needed this to make it work but maybe you wont.
hgexport(gcf,fnam,s);
在您当前的文件夹中应该有一个名为“myfig.jpeg”的文件,它是您在“foo”中进行的导出设置的图形。如果要查看样式文件选项,请s
在命令行中键入。它应该是这样的结构,其中包含所有导出设置。
s =
Version: '1'
Format: 'jpeg'
Preview: 'none'
Width: 'auto'
Height: 'auto'
Units: 'points'
Color: 'rgb'
Background: 'w'
FixedFontSize: '10'
ScaledFontSize: 'auto'
FontMode: 'scaled'
FontSizeMin: '8'
FixedLineWidth: '1'
ScaledLineWidth: 'auto'
LineMode: 'scaled'
LineWidthMin: '2'
FontName: 'Wingdings'
FontWeight: 'auto'
FontAngle: 'auto'
FontEncoding: 'latin1'
PSLevel: '2'
Renderer: 'auto'
Resolution: 'auto'
LineStyleMap: 'none'
ApplyStyle: '0'
Bounds: 'loose'
LockAxes: 'on'
ShowUI: 'on'
SeparateText: 'off'
使用 MATLAB 中心的以下“SDF”包。这只是一行命令。将此 sdf.m 文件放在您的路径中。这是一个例子。
figure;
hold on;
plot(rand(1,100));
plot(rand(1,100), 'r');
grid on;
box on;
sdf('mystyle'); %"mystyle" is the name of export style
http://www.mathworks.com/matlabcentral/fileexchange/24807-sdf-set-the-figure
不容易。
当您从“导出设置”对话框保存样式时,相关信息会保存到 MATLAB 首选项目录中的文本文件中。如果您键入cd(fullfile(prefdir, 'ExportSetup'))
,您可以看到它们。“导出设置”对话框执行了许多您在创建、应用和保存新样式时无法通过这些文件轻松访问的内容。
从理论上讲,您可以自己阅读和解析这些文件并以编程方式应用该样式,但我不知道您是否会发现它值得付出努力。
您可能会发现创建绘图、应用所需的任何更改和格式,然后自动生成新命令(File->Generate Code
从“图形”菜单中)更容易。然后,您可以只调用该命令而不是常规绘图命令,并将您的图形设置为您的要求。
希望有帮助。