matlab 等高线密度,CASTEP获得电荷密度等高线的Matlab作图法

matlab 等高线密度,CASTEP获得电荷密度等高线的Matlab作图法资料来自小木虫论坛;H.J.Zhao汇总CASTEP获得电荷密度等高线的Matlab作图法MATLAB程序用来处理MS电荷密度的等高线做法,分四步:1.找到电荷密度图的存储文件,一般是在自己所建的计算project中,隐藏的,castep模块是.charg_frm格式的,可以用txt打开后另存为txt格式。(这个地方注意把文件单独拷贝出来,以免破坏原始文件)2.读取数据,在matlab命令里输入一…

资料来自小木虫论坛;H.J.Zhao汇总

CASTEP获得电荷密度等高线的Matlab作图法

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(

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37417.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注