Matlabでgifアニメーションを作成して保存する方法



How Make Save Gif Animation Matlab



Mathematicaには、描画した複数の画像をgifアニメーションに簡単に合成できるエクスポート機能があります。 Matlabに同様の機能はありますか?もちろん、使うのはそれほど便利ではありません。ただし、Matlabはimwrite関数を使用してgifを重ね合わせてgifアニメーションを形成できます。これは、最も一般的な方法でもあります。

次のフレームワークのコードでmatlabのタイプを使用して、動機は何度も発生します。関数の変更プロセスを他の人に説明または表示したり、変更の物理プロセス(流体など)を説明したりすることができます。非常に便利プロセスはソフトウェアで動的に表示されます。



figure(1) plot(pic(i))%pic(i)Represents images at different times axis([xmin xmax ymin ymax]) drawnow

問題の鍵は、多くの場合、Matlabで画像を動的に表示するだけでなく、gifとして保存する必要があることです(gifである理由は、小さくて便利で、埋め込みが簡単だからです。その他)、レポートまたはその他の目的に使用できます。
ずっと前から、MATLABにgifを保存するときに変更するコードがもっとあると思います(MathematicaがAnimateをAnimateでエクスポートに変更する限り、直接出力されます)、それらはすべてgifアニメーション記録ツールを使用します(Gif記録は魂に推奨)、matlabダイアグラムが実行されているときに、それをgifとして記録します。
その後、matlabからますます多くのgifが必要になりました。簡単な録音方法を感じたので、Matlab独自の関数を使用してより多くのパラメーターを描画することを考えました。 gifアニメーションとして保存された画像。
シンプルで基本的なフレームワークは次のとおりです。

clc clear pic_num = 1 for *************************** plot(fig(i)) F=getframe(gcf) I=frame2im(F) [I,map]=rgb2ind(I,256) if pic_num == 1 imwrite(I,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.2) else imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2) end pic_num = pic_num + 1 end

imwriteがここに書き込むときは、「append」パラメーターを使用する前にファイルがすでに存在することを確認する必要があるため、pic_numを設定して画像を直接保存し、後で「append」を使用します。



例で終わりましょう:

clc clear pic_num = 1 for epsilon = 0.01:-0.001:0.005 t = 1 syms x ur = -1 ul = 1 s = (ur + ul)/2 w = ur + 1/2*(ul - ur)*(1-tanh((ul-ur)*(x-s*t)/(4*epsilon))) figure(1) ezplot(w) axis([-0.05,0.05 -1.5 1.5]) drawnow F=getframe(gcf) I=frame2im(F) [I,map]=rgb2ind(I,256) if pic_num == 1 imwrite(I,map,'test.gif','gif', 'Loopcount',inf,'DelayTime',0.2) else imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2) end pic_num = pic_num + 1 end

画像