保存Matlab文本而不打开图

时间:2012-12-14 14:45:22

标签: matlab matlab-figure

我正在尝试使用matlab中的文本函数,并将其用作图像,如下所示:

text('HorizontalAlignment'  , 'center'  ,...
     'position'             , [.5 .5]   ,...
     'string'               , 'HELLO'   ,...
     'FontName'             , 'Arial'   ,...
     'FontSize'             , 300       ,...
     'BackgroundColor'      , 'w');
axis off;
g=getframe(gca);
image=g.cdata;
close;

每次打开和关闭这个数字真的很困扰我。我用谷歌搜索,发现Save Matlab figure without plotting it?,但它没有解决问题。我也试过set(gca,'Visible','off');,但它也不起作用。

2 个答案:

答案 0 :(得分:1)

您应该尝试this Matlab文件交换功能。它以您想要的任何格式保存图形,您无需显示它。无论如何,如果您的程序定期显示数字并且您想在运行时显示并关闭它们,请尝试以下不同的命令:

[commandwindow][2] % Directs the user to command window

close all %closes all figures opened

pause %pauses the run until user presses any key in command window

[movegui][3] %can make a figure be shown where the user sets it (not always in the centre of the screen!)

使用其中的四个,您可以通过在程序继续时自动打开和关闭数字并且用户已经理解或检查数字来进行有趣的运行。将此与图像保存功能相结合,您可以构建一个非常好的程序!

我确信有更多的命令对此有用,但我自己还没有使用它们

答案 1 :(得分:0)

为什么您使用getframe而不仅仅是print

此代码似乎完全符合您的要求:

fig = figure('Visible', 'off'); % as you know - make the fig invisible
t = text('HorizontalAlignment'  , 'center'  ,...
     'position'             , [.5 .5]   ,...
     'string'               , 'HELLO'   ,...
     'FontName'             , 'Arial'   ,...
     'FontSize'             , 300       ,...
     'BackgroundColor'      , 'w');
axis off;
print(fig,'hello.png','-dpng') % you can chage the settings here to what you need
close(fig)