簡體   English   中英

在循環期間保存matlab中的數字

[英]save figures in matlab during loop

如果可以保存循環期間發生的數字,我感興趣。
例如,我創建了一些隨機矩陣,

 r=rand(8,5)


r =

0.8147    0.9575    0.4218    0.6787    0.2769
0.9058    0.9649    0.9157    0.7577    0.0462
0.1270    0.1576    0.7922    0.7431    0.0971
0.9134    0.9706    0.9595    0.3922    0.8235
0.6324    0.9572    0.6557    0.6555    0.6948
0.0975    0.4854    0.0357    0.1712    0.3171
0.2785    0.8003    0.8491    0.7060    0.9502
0.5469    0.1419    0.9340    0.0318    0.0344

現在,如果我使用這一行

plot(r(1,:))

我得到了下面的數字

在此輸入圖像描述

我的問題是,如果我使用循環

for i=1:8
   plot(r(i,:))
end

它顯示了一個行圖,但它沒有做循環,所以我可以在matlab中逐步顯示所有8個數字。 對於exmaple間隔可能是10秒,因為我知道使用函數movie ,也是getframe ,或者我可以在循環中保存數字嗎?
另外,我知道不保存或類似的東西。 我認為更好的是保存在某個地方,所以如果我可以這樣使用

imsave(plot(r(i,:))

使用getframe捕獲當前圖形句柄的內容

fh = figure
% ...
for ii = 1:8
    figure( fh ); % focus on figure
    plot( r(ii,:) );
    frm = getframe( fh );
    % save as png image
    imwrite( frm.cdata, sprintf( 'current_frame_%02d.png', ii ) );
end

PS
最好不要在Matlab中將i用作變量

我認為您的問題有多種解決方案:

  • 使用pause功能,可以暫停,以便您可以查看您的圖形。
  • 在新圖中打印每個圖像。 為此,只需將figure(i)放入for循環中即可。
  • 或使用print功能保存圖像。

希望能幫助到你!

如果您要使用循環顯示所有繪圖,則可以執行以下操作:

for ii=1:8
    figure();
    plot(r(ii,:));
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM