function cleanedTable = cleanUpTable(inputTable) % Converts string numbers to numeric, 'NaN' to NaN, and tries to convert date strings to datetime. cleanedTable = inputTable; varNames = cleanedTable.Properties.VariableNames; for i = 1:numel(varNames) col = cleanedTable.(varNames{i}); if iscell(col) numericCol = str2double(col); if all(isnan(numericCol) == strcmpi(col, 'NaN') | cellfun(@isempty, col)) cleanedTable.(varNames{i}) = numericCol; else try cleanedTable.(varNames{i}) = datetime(col, 'InputFormat', 'yyyy-MM-dd HH:mm:ss.SSSSSS'); catch cleanedTable.(varNames{i}) = string(col); end end elseif isstring(col) numericCol = str2double(col); if all(isnan(numericCol) == strcmpi(col, "NaN")) cleanedTable.(varNames{i}) = numericCol; else try cleanedTable.(varNames{i}) = datetime(col, 'InputFormat', 'yyyy-MM-dd HH:mm:ss'); catch end end end end end