欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

一个用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='以读取能带数据,并绘制能带图';

处理结果

一个用matlab绘制能带的小脚本

思路

importdate()导入存有数据的文件
size()计算总长度
for遍历整个文件
if判断以0开头为一条能带进行区分

相关标签: matlab vasp