forked from episodes-platform/shared-snippets
56 lines
2.1 KiB
Matlab
56 lines
2.1 KiB
Matlab
% function [Catalog] = CatalogSelectFields(fullcatalog,...)
|
|
% Select fields from IS-POIG catalog v2.0
|
|
% Produce reduced IS-POIG catalog v2.0
|
|
% Input parameters are names of fields
|
|
% eg. CatalogSelectFields(fullcatalog,'Date','Lat','Long','Mw')
|
|
% or cells with names of fields
|
|
% eg. CatalogSelectFields(fullcatalog,{'Date','Lat','Long','Mw'})
|
|
%
|
|
% (c) Jan Wiszniowski IG PAS
|
|
% v_2.0 19-09-2016 Dorota Olszewska
|
|
% 2021-10-22: test of inputs and error messages.
|
|
%
|
|
function [Catalog] = CatalogSelectFields(fullcatalog,varargin)
|
|
na_varargin = length(varargin) ;
|
|
no_cols = 0 ;
|
|
for i= 1:na_varargin
|
|
if iscell(varargin{i})
|
|
cellin = varargin{i} ;
|
|
for j= 1:numel(cellin)
|
|
if ischar(cellin{j})
|
|
if ~any(strcmp(cellin{j},{fullcatalog.field}))
|
|
error('Field %s does not exist in the catalog', cellin{j})
|
|
end
|
|
no_cols = no_cols+1 ;
|
|
else
|
|
error('Wrong %d{%d} input argument of the CatalogSelectFields function', j, i)
|
|
end
|
|
end
|
|
elseif ischar(varargin{i})
|
|
if ~any(strcmp(varargin{i},{fullcatalog.field}))
|
|
error('Field %s does not exist in the catalog', varargin{i})
|
|
end
|
|
no_cols = no_cols+1 ;
|
|
else
|
|
error('Wrong %d input of the CatalogSelectFields function', i)
|
|
end
|
|
end
|
|
Catalog = struct('field',cell(1,no_cols),'type',cell(1,no_cols),'val',cell(1,no_cols),'unit',cell(1,no_cols),'description',cell(1,no_cols),'fieldType',cell(1,no_cols)) ;
|
|
no_cols = 0 ;
|
|
for i= 1:na_varargin
|
|
if iscell(varargin{i})
|
|
cellin = varargin{i} ;
|
|
for j= 1:numel(cellin)
|
|
if ischar(cellin{j})
|
|
no_cols = no_cols+1 ;
|
|
Catalog(no_cols) = fullcatalog(strcmp(cellin{j},{fullcatalog.field})) ;
|
|
end
|
|
end
|
|
elseif ischar(varargin{i})
|
|
no_cols = no_cols+1 ;
|
|
Catalog(no_cols) = fullcatalog(strcmp(varargin{i},{fullcatalog.field})) ;
|
|
end
|
|
end
|
|
end
|
|
|