function [D1,D2,D3,D4]=ADCP(filename,T,dmin,dsec)
% A 原始数据
% B 原始的数据处理文件
% C 标题行
% depth 水深行
% D1 对应B的excel文件
% E 满足要求的u v速度
% D2 对应E的excel文件
% F 满足要求的u速度
% D3 对应F的excel文件
% G 满足要求的v速度
% D4 对应G的excel文件
A=xlsread(filename); %旧矩阵
[i,j]=size(A);
m=i;n=j+6;
B=zeros(m,n); %新矩阵
% 第一列Ens Num
B(:,1)=A(:,1);
% 第8-77列Eas 第78-147列Nor 第148-217列Per 第218/219列NVE/NVN
% 第220/221列Lat/Lon 第222-225列BD
for k=8:n
B(:,k)=A(:,k-6);
end
% 确定底层位置
for i=1:m
BD=round(mean(B(i,n-3:n))/100); %round四舍五入,mean平均值
bin=BD-2; %从第bin层,开始舍去,‘2’根据初步数据比对得到
if bin>70
bin=70;
end
for j=bin+1+7:77
B(i,j)=-2;
end
for j=bin+1+7+70:147
B(i,j)=-2;
end
end
% 排除高船速下的异常值
for i=1:m
if abs(B(i,218))>1000
for j=8:77
B(i,j)=-2;
end
end
if abs(B(i,219))>1000
for j=78:147
B(i,j)=-2;
end
end
end
% 第2-7列时间
% 不对年影响下的2月天数做控制
B(1,2:7)=T;
for i=2:m
B(i,2:7)=B(i-1,2:7);
% 控制秒
B(i,7)=B(i-1,7)+dsec;
if B(i,7)>=60
B(i,7)=B(i,7)-60;
B(i,6)=B(i,6)+1;
end
% 控制分
B(i,6)=B(i-1,6)+dmin;
if B(i,6)>=60
B(i,6)=B(i,6)-60;
B(i,5)=B(i,5)+1;
end
% 控制时
if B(i,5)>=24
B(i,5)=B(i,5)-24;
B(i,4)=B(i,4)+1;
end
% 控制日
if B(i-1,3)==1||B(i-1,3)==3||B(i-1,3)==5||B(i-1,3)==7
judge=32;
end
if B(i-1,3)==8||B(i-1,3)==10||B(i-1,3)==12
judge=32;
end
if B(i-1,3)==4||B(i-1,3)==6||B(i-1,3)==9||B(i-1,3)==11
judge=31;
end
if B(i,4)>=judge
B(i,4)=B(i,4)-31;
B(i,3)=B(i,3)+1;
end
% 控制月
if B(i,3)>=13
B(i,3)=B(i,3)-12;
B(i,2)=B(i,2)+1;
end
end
k_e=1; % 矩阵E
for i=1:m
if B(i,8)~=-2&&B(i,78)~=-2
for j=1:n
E(k_e,j)=B(i,j);
end
k_e=k_e+1;
end
end
k_f=1; % 矩阵F
for i=1:m
if B(i,8)~=-2&&B(i,78)==-2
for j=1:n
F(k_f,j)=B(i,j);
end
k_f=k_f+1;
end
end
k_g=1; % 矩阵G
for i=1:m
if B(i,8)==-2&&B(i,78)~=-2
for j=1:n
G(k_g,j)=B(i,j);
end
k_g=k_g+1;
end
end
depth=zeros(1,225);
depth(1,8)=4.12;
depth(1,78)=4.12;
depth(1,148)=4.12;
for j=9:77
depth(1,j)=depth(1,j-1)+1;
depth(1,j+70)=depth(1,j);
depth(1,j+140)=depth(1,j);
end
B=num2cell(B); %转化为元胞数组 对应D1
E=num2cell(E); %转化为元胞数组 对应D2
F=num2cell(F); %转化为元胞数组 对应D3
G=num2cell(G); %转化为元胞数组 对应D4
depth=num2cell(depth); %转化为元胞数组
depth(1,1:6)={'→'};
depth(1,7)={'depth'};
depth(1,218:225)={'#'};
C(1,1)={'Ens Num'}; %使用中括号表示元胞数组的形式
C(1,2)={'Year'};
C(1,3)={'Month'};
C(1,4)={'Day'};
C(1,5)={'Hour'};
C(1,6)={'Minute'};
C(1,7)={'Second'};
C(1,8:77)={'East(mm/s)'};
C(1,78:147)={'North(mm/s)'};
C(1,148:217)={'Percnet(%)'};
C(1,218)={'NVE(mm/s)'};
C(1,219)={'NVN(mm/s)'};
C(1,220)={'Lat'};
C(1,221)={'Lon'};
C(1,222:225)={'Bottom Depth(cm)'};
D1=cell(2+m,n); %元胞数组可以拼合数字、字符串矩阵
D1(1,:)=C; %标题
D1(2,:)=depth;
D1(3:m+2,:)=B;
D2=cell(2+k_e-1,n); %元胞数组可以拼合数字、字符串矩阵
D2(1,:)=C; %标题
D2(2,:)=depth; %水深
D2(3:2+k_e-1,:)=E;
D3=cell(2+k_f-1,n); %元胞数组可以拼合数字、字符串矩阵
D3(1,:)=C; %标题
D3(2,:)=depth; %水深
D3(3:2+k_f-1,:)=F;
D4=cell(2+k_g-1,n); %元胞数组可以拼合数字、字符串矩阵
D4(1,:)=C; %标题
D4(2,:)=depth; %水深
D4(3:2+k_g-1,:)=G;
ADCP.rar_BAD_adcp
版权申诉
152 浏览量
2022-07-13
21:26:16
上传
评论
收藏 2KB RAR 举报
刘良运
- 粉丝: 66
- 资源: 1万+