matlab读取多个文件 tecplot格式数据

平常程序输出的文件格式是.dat

一般用tecplot打开,画些云图,但是原始的数据有时候需要进行处理或者截取,就需要用matlab处理一下,附上我常用的风场文件读取处理程序。

文件格式:第一列x位置,第二列y位置,第三列z位置,第四列u风速,第五列v风速,第六列w风速,第七列tke。

VARIABLES= X,Y,Z,U(m/s),V(m/s),W(m/s),TKE
ZONE I= 382J=  52K=  52f=Point
  0.00000E+00  0.00000E+00 -0.80000E+01  0.28465E+01 -0.14505E+00  0.57113E-01  0.19592E-02

程序如下:

name={'4000.000.dat','4400.000.dat','4600.000.dat','4800.000.dat','5000.000.dat','5200.000.dat',...
    '5400.000.dat','5800.000.dat','6000.000.dat','6200.000.dat','6400.000.dat','6600.000.dat',...
    '6800.000.dat','7200.000.dat','7400.000.dat','7600.000.dat','7800.000.dat','8000.000.dat',...
    '8200.000.dat','8600.000.dat','8800.000.dat','9000.000.dat','9200.000.dat','9400.000.dat',...
    '9600.000.dat','9800.000.dat'};
[asfawhg,time]=size(name);

ii=382;
jj=52;
kk=52;
size_w=ii*jj*kk;

a11=zeros(size_w,1);
a22=zeros(size_w,1);
a33=zeros(size_w,1);
a44=zeros(size_w,1);
a55=zeros(size_w,1);
a66=zeros(size_w,1);
a77=zeros(size_w,1);

a1=zeros(size_w,time);
a2=zeros(size_w,time);
a3=zeros(size_w,time);
a4=zeros(size_w,time);
a5=zeros(size_w,time);
a6=zeros(size_w,time);
a7=zeros(size_w,time);

for i=1:time
tone=char(strcat(name(i)));
[a1(:,i),a2(:,i),a3(:,i),a4(:,i),a5(:,i),a6(:,i),a7(:,i)]=textread(tone,'%f%f%f%f%f%f%f',size_w,'headerlines',2);
end

for i=1:time
    a11(:,1)=a11(:,1)+a1(:,i);
    a22(:,1)=a22(:,1)+a2(:,i);
    a33(:,1)=a33(:,1)+a3(:,i);
    a44(:,1)=a44(:,1)+a4(:,i);
    a55(:,1)=a55(:,1)+a5(:,i);
    a66(:,1)=a66(:,1)+a6(:,i);
    a77(:,1)=a77(:,1)+a7(:,i);
end

a11(:,1)=a11(:,1)/time;
a22(:,1)=a22(:,1)/time;
a33(:,1)=a33(:,1)/time;
a44(:,1)=a44(:,1)/time;
a55(:,1)=a55(:,1)/time;
a66(:,1)=a66(:,1)/time;
a77(:,1)=a77(:,1)/time;


x=zeros(ii);
y=zeros(jj);
z=zeros(ii,jj,kk);
u=zeros(ii,jj,kk);
v=zeros(ii,jj,kk);
w=zeros(ii,jj,kk);
t=zeros(ii,jj,kk);

for i=1:ii
    x(i)=a11(i);
end
for j=1:jj
    ij=ii*j;
    y(j)=a22(ij);
end
for k=1:kk
    for j=1:jj
       for i=1:ii
             ijk=i+(j-1)*ii+(k-1)*ii*jj;
             z(i,j,k)=a33(ijk);
             u(i,j,k)=a44(ijk);
             v(i,j,k)=a55(ijk);
             w(i,j,k)=a66(ijk);
             t(i,j,k)=a77(ijk);
       end
    end
end

position=3;
zplane=zeros(19864,5);
for j=1:52
    for i=1:382
        ik=i+382*(j-1);
        zplane(ik,1)=(i-1)*40;
        zplane(ik,2)=(j-1)*40;
        zplane(ik,3)=u(i,j,position);
        zplane(ik,4)=v(i,j,position);
        zplane(ik,5)=w(i,j,position);
    end
end
save 3.dat -ascii zplane

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值