⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadfromenvfile.m

📁 水声模型 很不错的东西
💻 M
字号:
function [Layer, Msg] = LoadFromEnvFile(Layer, Fid, LayerName, Dflt, AttenOpt, Freq)
%        [Layer, Msg] = LoadFromEnvFile(Layer, Fid, LayerName, Dflt, AttenOpt, Freq);
%
%Loads acoustic layer object with information read from a standard kraken environment file
%Fid - file identifier
%LayerName - layer name
%Dflt - structure containing default parameter values for first line of layer
%AttenOpt - character specifying units attenuation is in
%Freq - frequency (Hz) 
%
%If successful a layer object is returned
%If unsuccessful OutLayer is [] and a string containing an error message is returned in Msg



Status = 1;

[Vals, NRead] = ScanEnvLine(Fid, 'fff');   
if NRead ~= 3
    Status = 0;
    Msg = ['Error reading first line of layer information for layer: ' LayerName];
end

if Status
    NMesh = Vals{1};
    Layer.RMSRough = Vals{2};
    ZLast = Vals{3};
    
    Layer.Name = LayerName;
    Layer.IsHalfSpace = 0;
    FirstLine = 1;
    Z = [];
    Cp = [];
    Cs = [];
    Rho = [];
    Ap = [];
    As = [];    
end

Done = 0;

while ~Done & Status
    EnvData = LibReadEnvFileLine(Fid, Dflt, AttenOpt, Freq);
    
    if isempty(EnvData)
        Status = 0;
        Msg = ['Error reading sound speed data for layer: ' LayerName];
    else
        if FirstLine
            ZTop = EnvData.Z;
            FirstLine = 0;
        end
        Z = [Z, EnvData.Z-ZTop];
        Cp = [Cp, EnvData.Cp];
        Cs = [Cs, EnvData.Cs];
        Rho = [Rho, EnvData.Rho];
        Ap = [Ap, EnvData.Ap];
        As = [As, EnvData.As];
        
        if EnvData.Z >= ZLast
            Done = 1;
        else
            Dflt = EnvData;  %Current line is default for next line
        end
    end
end

if Status
    Layer.Z = Z;
    Layer.Cp = Cp;
    Layer.Cs = Cs;
    Layer.Rho = Rho;
    Layer.Ap = Ap;
    Layer.As = As;
    Msg = '';
else
    Layer = [];
end
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -