From 067a6d1d1a8a70b046894ddbc15df8ed6963954f Mon Sep 17 00:00:00 2001 From: "@CarlWachter" Date: Tue, 17 Jan 2023 15:02:30 +0100 Subject: [PATCH] Added CSV file support, scrolling to allow for more data, and implemented first row secs option. --- PlottingTool.mlapp | Bin 32710 -> 33404 bytes fourierPlotFnc.m | 10 ++++++++-- graphPlotFnc.m | 3 ++- loadChannels.m | 15 ++++++++++++--- loadData.m | 21 +++++++++++++++++---- meanPlotFnc.m | 3 ++- 6 files changed, 41 insertions(+), 11 deletions(-) diff --git a/PlottingTool.mlapp b/PlottingTool.mlapp index bcad1f3baa428f4ac5596045fe693680cce1c0f6..de4d10ad8eb55c99d03d3ddeca5c79319ada2691 100644 GIT binary patch delta 31796 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 diff --git a/fourierPlotFnc.m b/fourierPlotFnc.m index 4a49561..d63f82b 100644 --- a/fourierPlotFnc.m +++ b/fourierPlotFnc.m @@ -14,17 +14,23 @@ function fourierPlotFnc(data, fileSettings, checkboxes, start, stop, yAxis, chan if fileSettings{2}.Value == 0 [timeArray, yData] = timeAxisWithIncrement(data, fileSettings{3}.Value, beginning, ending, channel); else - %TO DO + timeArray = data(:,1); + yData = data(:, channel); end fs = 1 / fileSettings{3}.Value; - Nspec = 1024; + if length(yData) < 1024 + Nspec = length(yData) - 1; + else + Nspec = 1024; + end wspec = hamming(Nspec); Noverlap = Nspec/2; hold on figure(channel) + spectrogram(yData, wspec, Noverlap, Nspec, fs, 'yaxis'); title(channels{channel}); diff --git a/graphPlotFnc.m b/graphPlotFnc.m index 232f313..2b1d177 100644 --- a/graphPlotFnc.m +++ b/graphPlotFnc.m @@ -14,7 +14,8 @@ function graphPlotFnc(data, fileSettings, checkboxes, start, stop, yAxis, channe if fileSettings{2}.Value == 0 [timeArray, yData] = timeAxisWithIncrement(data, fileSettings{3}.Value, beginning, ending, channel); else - %TO DO + timeArray = data(:,1); + yData = data(:, channel); end diff --git a/loadChannels.m b/loadChannels.m index b21e0de..019b6b8 100644 --- a/loadChannels.m +++ b/loadChannels.m @@ -1,11 +1,20 @@ -function [channels] = loadChannels(path, filenames) +function [channels] = loadChannels(path, filenamesTDMS, filenamesCSV) channels = {}; - for i = 1:length(filenames) - channel = tdmsinfo(append(path, '\', filenames(i).name)).ChannelList; + % read TDMS file headers + for i = 1:length(filenamesTDMS) + channel = tdmsinfo(append(path, '\', filenamesTDMS(i).name)).ChannelList; channel = channel{:, "ChannelName"}; channels{i} = channel; end + % read CSV file headers + for i = length(filenamesTDMS) + 1:length(filenamesCSV) + length(filenamesTDMS) + channel = readtable(strcat(path, '\', filenamesCSV(i - length(filenamesTDMS)).name), ... + 'VariableNamingRule','preserve'); + channel = channel.Properties.VariableNames; + channel = string(channel); + channels{i} = channel.'; + end end \ No newline at end of file diff --git a/loadData.m b/loadData.m index c8e66dd..1cb80f3 100644 --- a/loadData.m +++ b/loadData.m @@ -1,18 +1,31 @@ -function [dataListTable] = loadData(tdmsFileList) +function [dataListTable] = loadData(tdmsFileList, csvFileList) %Convert struct to cell for easy access tdmsFileList = struct2cell(tdmsFileList); - + if width(tdmsFileList) > 0 + path = tdmsFileList{2, 1}; + else + path = csvFileList(1).folder; + end + + %load TDMS files for i = 1:width(tdmsFileList) %Read files and save them as a table in a list - data = tdmsread(strcat(tdmsFileList{2, i}, '\', tdmsFileList{1, i})); - + data = tdmsread(strcat(path, '\', tdmsFileList{1, i})); %Take the table out of an 1x1 cell array and convert it in a cell array. dataListTable{i} = table2array(data{1,1}); end + %load CSV files + for i = width(tdmsFileList) + 1: length(csvFileList) + width(tdmsFileList) + + %Read CSV files + dataListTable{i} = readmatrix(strcat(path, '\', csvFileList(i - width(tdmsFileList)).name)); + + end + end diff --git a/meanPlotFnc.m b/meanPlotFnc.m index 7d58b3b..453402a 100644 --- a/meanPlotFnc.m +++ b/meanPlotFnc.m @@ -14,7 +14,8 @@ function meanPlotFnc(data, fileSettings, checkboxes, start, stop, yAxis, channel if fileSettings{2}.Value == 0 [timeArray, yData] = timeAxisWithIncrement(data, fileSettings{3}.Value, beginning, ending, channel); else - %TO DO + timeArray = data(:,1); + yData = data(:, channel); end