% 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