我正在尝试在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次?
感谢您的帮助:)
答案 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