在背景中绘制多个数字

时间:2012-09-16 19:15:10

标签: matlab matlab-figure figure

我有一个MATLAB代码,可以同时绘制多个数字。实现同样目的的一般技巧是拨打figure(figHandle),然后拨打plot,例如。

figure(h1);
plot(...args...);
figure(h2);
plot(...args...);

但是,每次拨打figure(figHandle)时,我都希望在不将数字输入前景的情况下进行此绘图。我想要做的就是同时绘制多个数字,而不是让它们进入可见性,并将它们导出到excel表格(我已经想到出口到excel表格部分)。

问题是有太多的数字(大约100),我必须手动关闭它们。我最终想要的只是一张带有数字输出的excel表。

感谢。

3 个答案:

答案 0 :(得分:4)

如果问题是关闭所有数字,您可以使用命令close all

答案 1 :(得分:3)

我同意mola(+1)的解决方案。但是,如果您出于某种原因希望在导出到excel后保持数字可用,但不希望它们在屏幕上可见,则只需在创建时将图形的visible属性设置为off:

fig1 = figure('visible', 'off')

如果你突然决定需要看到它:

set(fig1, 'visible', 'on')

编辑:我刚刚想到,如果你不关心在matlab中看到这些数字,那么当你创建时你绝对应该将图形的可见属性设置为关闭它。这应该可以显着加快代码的运行时间。例如:

x = (1:100)';
tic
for i = 1:1:10
    fig1 = figure('visible', 'off');
    plot(x);
end
close all
toc

在我的机器上运行需要0.27秒,但如果我将'off'切换到'on',则运行时间会增加到0.65秒。

答案 2 :(得分:0)

指定像

这样的图形句柄
fig1 = figure

运行

close figure1

当你完成它时关闭figure1。此外,如果您想通过平铺在一个图中绘制多个内容,请使用subplot函数。

当我从终端运行Matlab,并且我想要生成一堆要保存在html文件中的图表时,我运行我编写的这个函数,将感兴趣的脚本作为参数传递,并简单地设置它并忘记它:

function directoryOutput = cliPub(scriptName)
clc;
close all;
fprintf('Publishing...\n\n');
directoryOutput = publish(fullfile(pwd, scriptName), 'figureSnapMethod', 'getframe', 'useNewFigure', false);
close all;