MatLabPlotter/cut_data.m

39 lines
1.0 KiB
Matlab

close all
clear all
% user input:
input_path = "data\TriggerF.mat";
output_path = "data\TriggerF_cut.mat";
startTime = [10, 15, 00];
stopTime = [17, 34, 00];
% load data
data_in = load(input_path);
% get time
time = days(data_in.ABX_Driver_ABX_Speed(:,1)) + datetime(0,1,0);
% plot speed for visualization
plot(time,data_in.ABX_Driver_ABX_Speed(:,2))
grid on
% set start/stop timestamps
date = dateshift(time(1),'start','day');
date_d = datenum(date)+1;
startTime_d = date_d + convertHMStoDays(startTime);
stopTime_d = date_d + convertHMStoDays(stopTime);
fn = fieldnames(data_in);
for i=1:numel(fn)
clear var_out
var = data_in.(fn{i});
index1 = find(var(:,1)>startTime_d,1);
index2 = find(var(:,1)>stopTime_d,1);
var_out(:,1) = var(index1:index2,1);
var_out(:,2) = var(index1:index2,2);
data_out.(fn{i}) = var_out;
end
save(output_path,"-struct","data_out")
%% Functions
function time_d = convertHMStoDays(hmsArray)
time_d = hmsArray(1)/24 + hmsArray(2)/(24*60) + hmsArray(3)/(24*60*60);
end