6

我有一些图形样式保存在文件->“导出设置”下访问的“导出设置”对话框中。

有没有办法以编程方式加载我的一种样式?IE。我目前需要多次点击鼠标来加载我想要的样式,然后将其应用于图形,然后告诉它导出并为文件命名。我觉得这一切都应该通过几个命令来完成,但我找不到正确的信息。

4

3 回答 3

6

我在这个线程的底部找到了这个解决方案:

 % 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'
于 2012-05-15T16:34:17.803 回答
2

使用 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

于 2012-06-29T14:13:00.780 回答
0

不容易。

当您从“导出设置”对话框保存样式时,相关信息会保存到 MATLAB 首选项目录中的文本文件中。如果您键入cd(fullfile(prefdir, 'ExportSetup')),您可以看到它们。“导出设置”对话框执行了许多您在创建、应用和保存新样式时无法通过这些文件轻松访问的内容。

从理论上讲,您可以自己阅读和解析这些文件并以编程方式应用该样式,但我不知道您是否会发现它值得付出努力。

您可能会发现创建绘图、应用所需的任何更改和格式,然后自动生成新命令(File->Generate Code从“图形”菜单中)更容易。然后,您可以只调用该命令而不是常规绘图命令,并将您的图形设置为您的要求。

希望有帮助。

于 2012-05-15T16:14:22.593 回答