From 5753617baa76d6f129642217db174d5134122da7 Mon Sep 17 00:00:00 2001 From: Olivier Sauter <Olivier.Sauter@epfl.ch> Date: Sun, 27 Oct 2019 19:45:52 +0100 Subject: [PATCH] corrected time_out wit only one time point --- matlab/TCV/gdat_tcv.m | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/matlab/TCV/gdat_tcv.m b/matlab/TCV/gdat_tcv.m index fdeff219..65c4e01c 100644 --- a/matlab/TCV/gdat_tcv.m +++ b/matlab/TCV/gdat_tcv.m @@ -812,14 +812,36 @@ elseif strcmp(mapping_for_tcv.method,'switchcase') gdat_data.t = beta.dim{1}; gdat_data.data = beta.data; if isfield(gdat_data.gdat_params,'time_out') && ~isempty(gdat_data.gdat_params.time_out) - [gdat_data] = gdat2time_out(gdat_data,1); + % should already have all data at times time_out since called gdat_tcv above end ij=find(isfinite(ip.data)); - ip_t = interp1(ip.dim{1}(ij),ip.data(ij),gdat_data.t); + % use interpos linear with option 21 to have cst extrapolation + if numel(ij) > 1 + ip_t = interpos(21,ip.dim{1}(ij),ip.data(ij),gdat_data.t); + elseif numel(ij) == 1 + ip_t = ip.data(ij); + else + warning('no valid data for ip, cannot fit') + return + end ij=find(isfinite(b0.data)); - b0_t = interp1(b0.dim{1}(ij),b0.data(ij),gdat_data.t); + if numel(ij) > 1 + b0_t = interpos(21,b0.dim{1}(ij),b0.data(ij),gdat_data.t); + elseif numel(ij) == 1 + b0_t = b0.data(ij); + else + warning('no valid data for b0, cannot fit') + return + end ij=find(isfinite(a_minor.data)); - a_minor_t = interp1(a_minor.dim{1}(ij),a_minor.data(ij),gdat_data.t); + if numel(ij) > 1 + a_minor_t = interpos(21,a_minor.dim{1}(ij),a_minor.data(ij),gdat_data.t); + elseif numel(ij) == 1 + a_minor_t = a_minor.data(ij); + else + warning('no valid data for a_minor, cannot fit') + return + end gdat_data.data = 100.*beta.data ./ abs(ip_t).*1.e6 .* abs(b0_t) .* a_minor_t; gdat_data.data_fullpath='100*beta/ip*1e6*b0*a_minor, each from gdat_tcv'; gdat_data.units = ''; -- GitLab