快速输出相同数字n次

时间:2017-03-03 13:15:48

标签: matlab export figure

我正在尝试在matlab中组合动画。为此,我正在显示包含当前动画中发生的描述的图片。所以我正在写出我的数据的图片,然后再用matlab将它们放到一个avi文件中。对于描述部分来说"出现"我使用一个简单的循环,其中当前数字保存n次。不幸的是,虽然matlab不需要计算任何新东西,但这个过程是最慢的。 作为循环我使用以下(h_f是图形句柄):

for delay = 1:80 
export_fig (h_f,['-r' num2str(resolution)], ['C:\Users\Folder\Name_', '_' num2str(7700+delay) '.png']) 
end

我只想问是否有更快的方法。现在有点像matlab每次在导出之前重新编写图形。那么有没有一种方法可以将图形绘制一次并同时将其导出n次?

感谢您的帮助:)

1 个答案:

答案 0 :(得分:0)

如果它们完全相同,那么您只需将第一个文件复制到后续文件中即可。您的时间将受到磁盘驱动器速度和图像文件大小的限制。

% Define some of the flags as variables. This'll make it clearer
% what you're doing when you revisit the code in a year.

% Flag for the resolution
resFlag = sprintf('-r%u', resolutions);

% Base folder
folder = 'C:\Users\Folder\';

% First file number
startnum = 7701;

% This is the pattern all the filenames will use
nameToken = 'Name_%u.png';

% First filename
firstFile = fullfile(folder, sprintf(nameToken, startnum));

% Export the first file
export_fig(h_f, resFlag, firstFile);

numCopies = 80;

% Copy the file
for delay = 2:numCopies 
    % Make a new filename
    currentFile = fullfile(folder, sprintf(nameToken, startnum + delay));

    % Copy the first file into the current filename.
    copyfile(firstFile, currentFile);
end