32 lines
1.1 KiB
Matlab
32 lines
1.1 KiB
Matlab
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 |