2014-03-25 209 views
1

讓我們考慮下面的代碼模擬電影中的matlab

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,fs是採樣頻率。現在我想要下面的東西:我想保存每張圖片的某處,但是我想在每張圖片中包含參數k,例如在k = 1時,有這張圖片,在k = 2時,出現了不同的圖片等等請幫助我如何做到這一點在cycle.thanks提前

回答

1

這將會把每幀的標題爲k=1k=2等,以及將打印每幀爲EPS文件Frame1.epsFrame2.eps

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而不是標題將文本放置在圖的任何位置。

+0

它會保存在某個地方嗎? –

+0

也請我怎麼做,以便當k = p時,停止電影? –

+0

它會保存在您當前的工作目錄中。我不確定如何停止電影,但我確定如果您檢查文檔,它將是顯而易見的。 – David

1

默認情況下,具有零輸入參數的getframe基於當前的捕獲一幀。如果您想根據圖形捕捉框架,包括標題和軸標記,則需要執行getframe(gcf)。或者,使用@David建議的text將標籤放置在您捕獲的座標軸上。

關於保存圖像,你可以getframe後用frame2imimwrite,在循環:

im = frame2im(F); 
imwrite(im,sprintf('im_k%03d.png',k)) 

或者到幀保存到影片中,使用類,並在每個迭代上調用writeVideo

+0

感謝您的回覆 –