PhysioNet Cardiovascular Signal Toolbox 1.0.0
(3,067 bytes)
function [T, Tab] = ExportHRVparams(HRVparams)
% ExportHRVparams2Latex(HRVparams)
%
% INPUT:
% HRVparams - struct of various settings for the hrv_toolbox analysis
%
% OUTPUT:
% Latex file
%
% REPO:
% https://github.com/cliffordlab/PhysioNet-Cardiovascular-Signal-Toolbox
% ORIGINAL SOURCE AND AUTHORS:
% Script written by Giulia Da Poian
% Dependent scripts written by various authors
% (see functions for details)
% COPYRIGHT (C) 2016
% LICENSE:
% This software is offered freely and without warranty under
% the GNU (v3 or later) public license. See license file for
% more information
%
% Note that if you change the order of the parameters or add parameters
% this might not work
% Windows analysis parametrs
GeneralParams = struct2table(HRVparams,'AsArray',true);
NameOfParameters = GeneralParams.Properties.VariableNames;
ValuesOfParameters = table2cell(GeneralParams);
T = [];
for idx=1:length(ValuesOfParameters)
if isstruct(GeneralParams{1,idx})
% extract structure and concatenate to Table
temp = struct2table(GeneralParams{1,idx},'AsArray',true);
tempName = strcat(NameOfParameters(idx),'_',temp.Properties.VariableNames);
tempVal = table2cell(temp);
% Check for matrix instead of a single vector
% This works only for this particular program for extracting the
% frequency bands
for kk =1:length(tempVal)
if ~isvector(tempVal{kk}) && ~isempty(tempVal{kk})
extractedArray = tempVal{kk};
freqLimits = cellstr(strcat(num2str(extractedArray(:,1)),'-', num2str(extractedArray(:,2))));
T = [T array2table(freqLimits','VariableNames',{'ulf','vlf','lf','hf'})];
tempVal{kk} = "[]";
elseif ~isnumeric(tempVal{kk})
tempVal{kk} = string(tempVal{kk});
elseif isempty(tempVal{kk})
tempVal{kk} = "[]";
end
end
try
T = [T table( tempVal{:},'VariableNames',{tempName{:}})];
catch
end
else
T = [T GeneralParams(:,idx)];
end
end
TableNames = T.Properties.VariableNames;
% Change Names to be in latex format
TableNames = strrep(TableNames,'_',' ');
TableValues = table2cell(T);
% Change Names to be in latex format
for idx = 1: length(TableValues)
if iscellstr(TableValues(idx))
TableValues(idx) = strrep(TableValues(idx),{'\'},{'$\$'});
TableValues(idx) = strrep(TableValues(idx),{'_'},{' '});
elseif ~ischar(TableValues{1,idx}) && ~isstring(TableValues{1,idx})
TableValues{idx} = char(num2str(TableValues{1,idx}));
end
end
Tab = [TableNames' TableValues'];
writetable(array2table(Tab),[HRVparams.writedata filesep 'ParametersTable' HRVparams.filename '.csv']);
try
matrix2latex(Tab, [HRVparams.writedata filesep 'ParametersTable' HRVparams.filename '.tex']);
catch
end