From c0476dfb8f41308536feeaeb7fb91973f02cc955 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <olivier.sauter@epfl.ch> Date: Tue, 8 Aug 2017 15:37:16 +0000 Subject: [PATCH] take liuqe from expression if not explicitely specified, liuqe.m2 is used if in expression to set liuqe 2, enforces liuqe if given in parameters git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@8142 d63d8f72-b253-0410-a779-e742ad2e26cf --- crpptbx/TCV/gdat_tcv.m | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/crpptbx/TCV/gdat_tcv.m b/crpptbx/TCV/gdat_tcv.m index 381e67ba..8d3e14cb 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" -- GitLab