loadmaes.m

来自「麻省理工学院的人工智能工具箱,很珍贵,希望对大家有用!」· M 代码 · 共 69 行

M
69
字号
function [loc,Maes,id,nam,alt,prv,typ]=loadMaes(name,varargin)

MATFILE=0;
if(nargin>1)
   if(strcmpi(varargin{1},'mat'))
      MATFILE=1;
   end
end
%Cargamos los datos
loc=[];fptnd=[];
Maes=[];

if(MATFILE)
   eval(['load ' name]);   
else
   [Maes,Maeslength]=getLines(name);
   iMaes=find(Maeslength~=171);
   if ~isempty(iMaes)
      warning(sprintf('Some entry in %s don''t have a correct form.',name));  
      iMaes=find(Maeslength==171);
      Maes=Maes(iMaes,:);
   end
end

dum1=Maes(:,140:146);
dum1(find(dum1==' '))='0';
loc(:,1)=(str2num(dum1(:,1:2))+str2num(dum1(:,3:4))/60+...
   str2num(dum1(:,5:6))/3600).*((-1).^(str2num(dum1(:,7))+1));
dum1=Maes(:,147:152);
dum1(find(dum1==' '))='0';
%Para el caso en el que la latitud se negativa
deg=hex2dec(dum1(:,1:2));
i=deg<160;
deg(find(i))=str2num(dum1(find(i),1:2));
deg(find(~i))=(deg(find(~i))-160);

loc(:,2)=(deg+str2num(dum1(:,3:4))/60+...
   str2num(dum1(:,5:6))/3600);
loc(find(~i),2)=-1.*loc(find(~i),2);
if nargout>2
   dum1=Maes(:,153:156);
        dum1(find(dum1==' '))='0';
   alt(:,1)=str2num(dum1);
        prv=Maes(:,86:97);
   dum1=Maes(:,118:126);
   tipos={'P','T','C','E','S','R','Y','H','A'};
   for t=1:length(tipos)
      typ(:,t)=sum(dum1==tipos{t},2);
   end
   nam=Maes(:,6:55);
   id=Maes(:,1:5);
end

iMaes=find(sum(loc,2)==0);
if ~isempty(iMaes)
   warning(sprintf('Some entry in %s don''t have location coordinate.',name));  
   iMaes=find(sum(loc,2)~=0);
   Maes=Maes(iMaes,:);
   loc=loc(iMaes,:);
   if nargout>2
        alt=alt(iMaes,:);   
        prv=prv(iMaes,:);   
        typ=typ(iMaes,:);   
        nam=nam(iMaes,:);   
   end
end


⌨️ 快捷键说明

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