readdomain_old.m

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

M
58
字号
function dmn=readDomain(fic)
%dmn=readDomain(fic)
%
%Funcion que lee los ficheros .cfg definidos en areaPattern con los que se han generado las CPs
%
%En la entrada:
%	fic	:	nombre con ruta completa del fichero que se quiere leer
%
%En la salida:
%	dmn	:	estructura con los campos
%		lon	:	longitud (en grados) de cada uno de los nodos que definen el dominio
%		lat	:	latitud (en grados) de cada uno de los nodos que definen el dominio
%		lvl	: 	niveles de presion (en mb) utilizados
%		tim	:	horas de analisis	utilizadas
%		par	:	variables empleadas (en numeros, por ejemplo 129 es geopotencial
%		nod	:	nodos del dominio que se utilizan	
%		src	:	ruta del lugar donde se almacenan los datos originales (en .grb)
%		startDate	:	fecha de inicio de los datos
%		endDate		:	fecha de fin de los datos
%
fid=fopen(fic,'rb');
if(fid<0)
	error(['Opening: ' fic]);   
end

s=fscanf(fid,'%c',inf);
fclose(fid);
dmn=struct('lon',[],'lat',[],'lvl',[],'tim',[],'par',[],'nod',[],'src',[],'startDate',[],'endDate',[]);
[T,R]=strtok(s);
while ~isempty(T)
   [fld,r]=strtok(T,'=');
   if(~isfield(dmn,fld))
      error([fld ' : isn''t a parameter']);
   end
   [t,r]=strtok(r,',=');
   
   while ~isempty(t)
      if strcmp('lop',fld)
         if(~isfield(dmn,fld))
            error([t ' : isn''t a parameter']);
         end
         dmn=setfield(dmn,fld,[getfield(dmn,fld);t]);
      elseif (strcmp('startDate',fld) | strcmp('endDate',fld)) 
         dmn=setfield(dmn,fld,t);
      elseif(strcmp('src',fld))
         METEOLAB=getappdata(0,'METEOLAB');
			path = strrep(t,'$METEOLAB_HOME',METEOLAB.home);
         path=strrep(path,'\','/');
         dmn=setfield(dmn,fld,path);
      else
         dmn=setfield(dmn,fld,[getfield(dmn,fld) str2num(t)]);
      end
      [t,r]=strtok(r,',=');
   end
   [T,R]=strtok(R);
end

⌨️ 快捷键说明

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