| 查看: 3395 | 回复: 22 | ||||
| 【奖励】 本帖被评价6次,作者monowolf增加金币 3.75 个 | ||||
| 当前主题已经存档。 | ||||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||||
[资源]
电荷密度图等高线的作法
|
||||
|
这是我师兄编的MATLAB程序用来处理MS电荷密度的等高线做法,分四步: 1.找到电荷密度图的存储文件,一般是在自己所建的计算project中,隐藏的,castep模块是.charg_frm格式的,可以用txt打开后另存为txt格式。 2.读取数据,在matlab命令里输入以下命令: [path,fn]=uigetfile('*.txt','Open'); fp=fopen([fn,path],'r'); head=fscanf(fp,'%s',4); data=fscanf(fp,'%f',[4,18*18*144]); fclose(fp); 这是读取刚才保存的txt数据的,其中18*18*144是可以改的,分别对应a,b,c的重复单元。 3.作矩阵。 a=reshape(data(1, ,[18,18,144]);b=reshape(data(2, ,[18,18,144]);c=reshape(data(3, ,[18,18,144]);d=reshape(data(4, ,[18,18,144]);其中18*18*144是可以改的,分别对应a,b,c的重复单元,即长宽高的值。 4.作等高线图 layer=1; contour(reshape(a(:,layer, ,[18,144]),reshape(c(:,layer, ,[18,144]),reshape(d(:,layer, ,[18,144]),8);layer=1(2,3,4....) 可以修改作图的层数,分别是从前面到后面。最后的8表示显示线条数目,可以自己修改成9,10或其它。 hold on 表示累积作图,hold off表示清空前面的 作图 举例;做表面层和第九层的等高线图 >> layer=9; contour(reshape(a(:,layer, ,[18,144]),reshape(c(:,layer, ,[18,144]),reshape(d(:,layer, ,[18,144]),8);>> hold on >> layer=1; contour(reshape(a(:,layer, ,[18,144]),reshape(c(:,layer, ,[18,144]),reshape(d(:,layer, ,[18,144]),8);这是沿侧面做等高线(即xz平面),其它方向作图类似。只要修改其中的参数就可以了,如把a(:,layer, ,[18,144]),reshape(c(:,layer, ,[18,144]),reshape(d(:,layer, ,[18,144]),8);改为a(layer,:, ,[18,144]),reshape(c(layer,l:, ,[18,144]),reshape(d(layer,:, ,[18,144]),8);欢迎大家指点。上传附件为样本数据和上述作图txt文档。 特别感谢师兄Mr.Tang. [ Last edited by monowolf on 2008-9-25 at 21:58 ] |
» 收录本帖的淘帖专辑推荐
我的第一原理学习贴 | 第一原理资料贴 |
» 猜你喜欢
【考研调剂】化学专业 281分,一志愿四川大学,诚心求调剂
已经有4人回复
317求调剂
已经有5人回复
0817 化学工程 299分求调剂 有科研经历 有二区文章
已经有10人回复
一志愿 西北大学 ,070300化学学硕,总分287,双非一本,求调剂。
已经有3人回复
一志愿福大288有机化学,求调剂
已经有3人回复
085600材料与化工求调剂
已经有6人回复
一志愿西安交通大学材料工程专业 282分求调剂
已经有6人回复
085600材料与化工调剂 324分
已经有10人回复
294求调剂材料与化工专硕
已经有11人回复
一志愿南昌大学,327分,材料与化工085600
已经有3人回复
3楼2008-09-25 22:02:57
2楼2008-09-25 21:59:25
4楼2008-09-26 14:40:58
5楼2009-05-30 15:36:34













,[18,18,144]);
回复此楼