目前比較流行的做三維圖的軟件包括Origin、Surfer等,但是如果需要批量制作相同格式的三維圖,則需要編寫(xiě)腳本程序,對于普通用戶(hù)則無(wú)從下手。這塊兒介紹如何利用matlab批量做三維圖,以及基于得到的圖形制作動(dòng)畫(huà)。
1) 需要的dat數據文件格式:XYZ三列,通常由Fortran或者C程序編寫(xiě)兩重循環(huán)計算得到。相應的matlab文件如下:
----------------------------------------------------------------------------
clear,clf
a=dir('*.dat'); %讀取所有的.dat文件,如不是dat文件換一下即可
n=length(a); %需要讀取文件的個(gè)數
for j=1:n
dat = importdata(a(j).name);
%make the meshgrid matrix
x = dat(find( dat(:,2) == dat(1,2) ));
ind = find( dat(:,1) == dat(1,1));
[ind_x,ind_y,ind_z] = ind2sub(size(dat),ind);
y = dat(ind_x,2);
[X,Y] = meshgrid(x,y);
%網(wǎng)格矩陣對應Z值
[Zi,Zj] = size(X);
Z = zeros(Zi,Zj);
for i = 1:Zi
Z(i,:) = (dat(((i-1)*Zj+1):(i*Zj),3))';
end
contourf(X,Y,Z,10);
AXIS([-20 15 -15 15]);
%caxis([0,1]);
shading flat; %去掉黑線(xiàn)
title(a(j).name,'FontSize',20)
filename=deblank(strrep(a(j).name, '.dat', '')); %使圖形的名稱(chēng)和數據的名字一致
saveas(gcf,filename,'jpg') %保存當前圖形
end
--------------------------------------------------------------------------------------
該程序會(huì )將當前目錄下所有的dat文件做等高線(xiàn)圖并輸出為相應的jpg圖形文件。
2)基于這些得到圖形文件,利用一個(gè)小軟件GIF Movie Gear就可以很輕松地做出動(dòng)畫(huà)。該方法對于QMD框架下的核反應動(dòng)力學(xué)模擬可視化非常有用。
2010.6.12