diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index 381e67ba64298f28b3d01a3d64f90d131ac52a5d..8d3e14cb54ad78ab71fc0039d0c3a4c50ea1bbc6 100644 --- a/crpptbx/TCV/gdat_tcv.m +++ b/crpptbx/TCV/gdat_tcv.m @@ -195,10 +195,14 @@ else end % extract parameters from pairs of varargin: +i_liuqe_set_in_pairs = 0; % to know if liuqe was not set explicitely thus use value in expression later if (nargin>=ivarargin_first_char) if mod(nargin-ivarargin_first_char+1,2)==0 for i=1:2:nargin-ivarargin_first_char+1 if ischar(varargin_eff{i}) + if strcmp(varargin_eff{i},'liuqe') + i_liuqe_set_in_pairs = 1; + end % enforce lower case for any character driven input if ischar(varargin_eff{i+1}) && ~strcmp('path',varargin_eff{i}) gdat_params.(lower(varargin_eff{i})) = lower(varargin_eff{i+1}); @@ -376,9 +380,40 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi') ichar_after_liuqe = 7; if strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'2') || ... strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'3') + if i_liuqe_set_in_pairs==0 + gdat_params.liuqe = str2num(mapping_for_tcv.expression(ij+ichar_after_liuqe)); + gdat_data.gdat_params = gdat_params; + substr_liuqe_tcv_eq = mapping_for_tcv.expression(ij+ichar_after_liuqe); + end ichar_after_liuqe = 8; end mapping_for_tcv.expression = [mapping_for_tcv.expression(1:ij+6) substr_liuqe_tcv_eq mapping_for_tcv.expression(ij+ichar_after_liuqe:end)]; + else + % check if liuqe, liuqe2 or liuqe3 is given in expression + ij = regexpi(mapping_for_tcv.expression,'LIUQE[^\.]','once'); + if ~isempty(ij) + ichar_after_liuqe = 5; + if strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'2') || ... + strcmp(mapping_for_tcv.expression(ij+ichar_after_liuqe),'3') + if i_liuqe_set_in_pairs==0 + gdat_params.liuqe = 10+str2num(mapping_for_tcv.expression(ij+ichar_after_liuqe)); + gdat_data.gdat_params = gdat_params; + substr_liuqe_tcv_eq = mapping_for_tcv.expression(ij+ichar_after_liuqe); + end + ichar_after_liuqe = 6; + else + if i_liuqe_set_in_pairs==0 + gdat_params.liuqe = 11; + gdat_data.gdat_params = gdat_params; + substr_liuqe_tcv_eq = ''; + end + end + if i_liuqe_set_in_pairs==1 && liuqe_matlab==1 + % enforce matlab liuqe version even matlab if asked for + substr_liuqe_tcv_eq = ['.M' substr_liuqe_tcv_eq]; + end + mapping_for_tcv.expression = [mapping_for_tcv.expression(1:ij+4) substr_liuqe_tcv_eq mapping_for_tcv.expression(ij+ichar_after_liuqe:end)]; + end end else ij = regexpi(mapping_for_tcv.expression,'LIUQE.*\.M','once'); @@ -474,6 +509,7 @@ if strcmp(mapping_for_tcv.method(1:3),'tdi') mapping_for_tcv.gdat_timedim = mapping_for_tcv.timedim; end gdat_data.data_fullpath=[mapping_for_tcv.expression]; + gdat_data.label=[mapping_for_tcv.expression]; gdat_data.help = aatmp.help; % end of method "tdi"