让我们考虑以下代码(fs
是采样频率)
function [] = AR_simulate(p,fs)
B = xlsread('data_generations1','A1','g8:g301');
for k = 1:1:p
[pxx,f] = pyulear(B,k);
plot(f,pxx);
F(k) = getframe;
end
movie(F,100);
end
使用不同的顺序(即从B
到k=1
的动态,为给定k=p
向量的功率谱密度设置动画。
现在我想在某处保存每张图片,但在每张图片上我想要包含参数k
,例如在k=1
有这张图片,在k=2
有不同的画面等等。
答案 0 :(得分:1)
这会将每个框架的标题设为k=1
,k=2
等,并将每个框架作为eps文件打印到Frame1.eps
,Frame2.eps
等。< / p>
function []=AR_simulate(p,fs);
B=xlsread('data_generations1','A1','g8:g301');
for k=1:1:p
[pxx,f]=pyulear(B,k);
subplot(1,2,1)
plot(f,pxx);
F(k) = getframe;
title(['k=' num2str(k)])
subplot(1,2,2)
% 2nd plot
print('-depsc2',['Frame' num2str(k) '.eps')
end
movie(F,100);
end
您还可以使用text代替标题将文字放置在图表的任何位置。
答案 1 :(得分:1)
默认情况下,带有零输入参数的getframe
会根据当前轴捕获一个帧。如果要根据图形捕获帧,包括标题和轴刻度,则需要执行getframe(gcf)
。或者,使用@David建议的text
将标签放在您捕获的轴上。
关于保存图片,您可以在imwrite
之后的循环中使用frame2im
和getframe
:
im = frame2im(F);
imwrite(im,sprintf('im_k%03d.png',k))
或者要将帧保存到电影中,请使用VideoWriter
类并在每次迭代时调用writeVideo
。