【有用建議收藏】用MATLAB生成好看的gif圖

之前做了個matlab制作gif的視頻,現(xiàn)在把代碼寫一下,便于大家復(fù)制。

大概就是這種效果:

生成gif圖部分:
%By HDTT%
f_num=1;%幀數(shù)索引
%畫圖部分%
for rho=0:0.02:0.9%選取的動態(tài)參數(shù)
? ? normal_2d(0,0,rho);%自定義畫圖函數(shù)。要包含能畫出圖的函數(shù)%
%加標(biāo)注%
? ? xlabel x;ylabel y;zlabel z;
? ? title([num2str((rho))]);
? ??
? ? F=getframe(gcf);%截取幀
? ? I=frame2im(F);%從單個影片幀 F 返回真彩色 (RGB) 圖像。
? ??
? ? [I,map]=rgb2ind(I,256);%使用具有256種量化顏色的最小方差量化法并加入抖動
? ? ? ? ? ? ? ? ? ? ? ? ? ? %將 RGB 圖像轉(zhuǎn)換為索引圖像I,關(guān)聯(lián)顏色圖為map。
? ??
? ? if f_num == 1%如果不存在該圖片,則創(chuàng)建
? ? ? ? imwrite(I,map,'normal2d.gif','gif', 'Loopcount',inf,'DelayTime',0.1);
? ? else%如果已經(jīng)存在該圖片,則添加
? ? ? ? imwrite(I,map,'normal2d.gif','gif','WriteMode','append','DelayTime',0.1);
? ? end
? ? f_num=f_num+1;%幀數(shù)索引+1
end?
內(nèi)置的二維正態(tài)函數(shù)部分:
function [ p ] = normal_2d( mu_x,mu_y, rho )
close all;
mu=[mu_x,mu_y];% 均值向量
Sigma=[1 rho;rho 1];% 協(xié)方差矩陣
[X,Y]=meshgrid(-3:0.1:3,-3:0.1:3);%在XOY面上,產(chǎn)生網(wǎng)格數(shù)據(jù)
p=mvnpdf([X(:) Y(:)],mu,Sigma);%求取聯(lián)合概率密度,相當(dāng)于Z軸
p=reshape(p,size(X));%將Z值對應(yīng)到相應(yīng)的坐標(biāo)上
figure
set(gcf,'Position',get(gcf,'Position').*[1 1 1.3 1])
subplot(2,3,[1 2 4 5])
surf(X,Y,p),axis tight,title('二維正態(tài)分布圖')
zlim([0 0.4])
subplot(2,3,3)
surf(X,Y,p),view(2),axis tight,title('在XOY面上的投影')
subplot(2,3,6)
surf(X,Y,p),view([0 0]),axis tight,title('在XOZ面上的投影')
最后再附上生成視頻的代碼:

以及一些畫圖的小trick:

你知道怎么把這三張圖像下圖一樣排布嗎?
