一个用matlab绘制能带的小脚本
程序员文章站
2022-05-16 18:14:23
...
说明
平常用p4vasp提取能带文件后会用origin来绘制,但最近不知道到为什么,origin在电脑上崩溃的严重,老是死机,所以就写了个脚本用打算以后用matlab来处理提取出的能带数据,写了两个版,区别不大,一个直接用matlab提取,另一个是用py调用
用法
matlabe调用
创建mat脚本文件直接把脚本复制进去,把脚本里的 ‘数据名称’ 改为f打算处理的数据的名称记住加上文件尾缀和**‘’**,把脚本同能带数据放置在一起,运行即可。
py调用
写脚本本来就是为了偷懒,我连matlab都懒得打开了所以直接用py调用(电脑需要有调用环境),注意需要把带%##的第3,4句删除。使用1,2句(去掉前面的%),同时把最后一句的%删除,脚本命名为band.m
脚本band
%function a = band(b,t)
%dat= importdata(b);
clear %##
dat=importdata('数据名称'); %##
x=dat(:,1); %将x,y分开放置
y=dat(:,2);
[m,n]=size(x); %计算总文件总长度
mun1=1;
%t1=double(t);
%subplot(1,3,t1)
hold on
for i=2:m %对文件进行1遍历
if x(i)== 0 %以0为判读标准,判断每一条能带
plot(munx,muny,'k')%这里使用了黑色的能带线不喜欢的可以修改'k'这个值
hold on
mun1=1;
x_long=x(i-1); %计算x轴的长度
clear munx muny
i=i+1;
else
munx(mun1)=x(i);
muny(mun1)=y(i);
mun1=mun1+1;
i=i+1;
end
end
set(gca,'XTick',(0:0.1:x_long))
set(gca,'YTick',(-4:1:4))
axis([0,0.24,-4,4])
plot([0,x_long],[0,0],'r','linewidth',1) %绘制费米能级
%a='以读取能带数据,并绘制能带图';
处理结果
思路
importdate()导入存有数据的文件
size()计算总长度
for遍历整个文件
if判断以0开头为一条能带进行区分
上一篇: php安装gd库扩展