sw-plotting-tool/hyEndSucks.m

78 lines
1.8 KiB
Matlab

close all
clc
format longg
inputPath = ".\Bsp1Coriolis.txt";
outputPath = ".\CoriolisGoodFormat.csv";
Table=readtable(inputPath, 'VariableNamingRule','preserve');
time = Table(:,2);
secs = Table(:,3);
%channel identification
channels = Table.Properties.VariableNames;
channels = string(channels)';
channels(1:3) = [];
data = Table(:,4);
%time conversion
time = table2array(time);
secs = table2array(secs);
connectArrays = strcat(time, secs);
timeArray = datetime(connectArrays, 'InputFormat', 'HH:mmss,SSS');
timeArray.Format = 'mm:ss.SSS';
times = double(convertTo(timeArray,'epochtime', 'Epoch', timeArray(1), 'TicksPerSecond', 1000)) ./ 1000.0;
%convert column to array
arrayData = times;
for channel = 1: length(channels)
data = table2array(Table(:, 3 + channel));
data = strrep(data, ',', '.');
data = str2double(data);
if ~isnan(data)
arrayData = cat(2, arrayData, data);
end
end
% read header because read table can't handle spaces in channel name
fid = fopen(inputPath);
% Read all lines & collect in cell array
txt = textscan(fid,'%s','delimiter','\n');
% Read header Line
Val = txt{1}(1);
headers = Val{1};
headers = split(headers);
%fix units
headerNames = [];
count = 1;
for header = 3: length(headers)
if headers{header}(1) ~= '(' && strcmp(headers{header}, 'Mass')
% Special rule for "Total Mass", since the space is horrible
headerNames{count-1} = strcat(headerNames{count-1}, headers{header});
elseif headers{header}(1) ~= '('
headerNames{count} = headers{header};
count = count + 1;
end
end
headerNames = cell2mat(join(headerNames, ";"));
fid = fopen(outputPath, "wt");
fprintf(fid, '\n');
fprintf(fid, '\n');
fprintf(fid, headerNames);
fprintf(fid, '\n');
writematrix(arrayData, outputPath, 'WriteMode', 'append', 'Delimiter', ';');
fclose('all');