首  页|理论模型|研究领域|研究团队|download|学术天地|核物理专题|BBS论坛
  Fusion and quasi-fission dynam...  [2015-11-09 09:03:00]      Energy dependence of the nucle...  [2014-11-20 17:01:23]      Systematic study of O16 -induc...  [2014-11-20 16:58:23]  
   位置: 量子 >> 学术天地 >> 自由讨论 >> 正文
基于matlab批量制作三维图[量子分子动力学之家]
基于matlab批量制作三维图
 更新时间:2010/6/12 10:27:38  点击数:4785
【字体: 字体颜色

邵严民   肖向华
(广西师范大学 物理学院,桂林 541004)


目前比较流行的做三维图的软件包括Origin、Surfer等,但是如果需要批量制作相同格式的三维图,则需要编写脚本程序,对于普通用户则无从下手。这块儿介绍如何利用matlab批量做三维图,以及基于得到的图形制作动画。

1) 需要的dat数据文件格式:XYZ三列,通常由Fortran或者C程序编写两重循环计算得到。相应的matlab文件如下:
----------------------------------------------------------------------------
clear,clf

a=dir('*.dat');   %读取所有的.dat文件,如不是dat文件换一下即可
n=length(a);      %需要读取文件的个数

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);
 
 %网格矩阵对应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;                %去掉黑线
 title(a(j).name,'FontSize',20)
 filename=deblank(strrep(a(j).name, '.dat', ''));     %使图形的名称和数据的名字一致
 saveas(gcf,filename,'jpg')                           %保存当前图形
end
--------------------------------------------------------------------------------------
该程序会将当前目录下所有的dat文件做等高线图并输出为相应的jpg图形文件。

2)基于这些得到图形文件,利用一个小软件GIF Movie Gear就可以很轻松地做出动画。该方法对于QMD框架下的核反应动力学模拟可视化非常有用。

2010.6.12

  • 上一篇: 国内核物理与核技术专业调研
  • 下一篇: 国内核物理与核技术专业调研
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    | 关于本站 | 设为首页 | 加入收藏 | 站长邮箱 | 友情链接 | 与我同在 | 版权申明 | 联系我们 |