# 工具函数:统计有义波高

为了避免每次计算都要重写一遍,做个备份

function Hs = Cal_Hs(Eta)
%CAL_HS 计算有义波高
N=length(Eta);
Pset=UpCrossZeroPoints(Eta);
N_P=length(Pset);
H=[];
for k=1:1:N_P-1
    eta_tmp=Eta(Pset(k):Pset(k+1));
    H=[H;max(eta_tmp)-min(eta_tmp)];
end
%降序排序
H=sort(H,'descend');
%最大三分之一平均值
Num=floor(length(H)/3);
Hs=mean(H(1:Num));
    function Pset=UpCrossZeroPoints(Eta)
        %计算上跨零点
        Pset=[];
        for i=1:1:N-1
            if(Eta(i)<=0&&Eta(i+1)>=0)
                Pset=[Pset;i];
            end
        end
    end
end
posted @ 2022-11-23 14:15  陈橙橙  阅读(395)  评论(0编辑  收藏  举报