我有一个MATLAB代码,可以同时绘制多个数字。实现同样目的的一般技巧是拨打figure(figHandle)
,然后拨打plot
,例如。
figure(h1);
plot(...args...);
figure(h2);
plot(...args...);
但是,每次拨打figure(figHandle)
时,我都希望在不将数字输入前景的情况下进行此绘图。我想要做的就是同时绘制多个数字,而不是让它们进入可见性,并将它们导出到excel表格(我已经想到出口到excel表格部分)。
问题是有太多的数字(大约100),我必须手动关闭它们。我最终想要的只是一张带有数字输出的excel表。
感谢。
答案 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;