diff options
Diffstat (limited to 'third_party/libwebrtc/tools_webrtc/matlab/parseLog.m')
-rw-r--r-- | third_party/libwebrtc/tools_webrtc/matlab/parseLog.m | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/third_party/libwebrtc/tools_webrtc/matlab/parseLog.m b/third_party/libwebrtc/tools_webrtc/matlab/parseLog.m new file mode 100644 index 0000000000..5d4c3f7bc1 --- /dev/null +++ b/third_party/libwebrtc/tools_webrtc/matlab/parseLog.m @@ -0,0 +1,54 @@ +function parsed = parseLog(filename) +% +% parsed = parseLog(filename) +% Parses a DataLog text file, with the filename specified in the string +% filename, into a struct with each column name as a field, and with the +% column data stored as a vector in that field. +% +% Arguments +% +% filename: A string with the name of the file to parse. +% +% Return value +% +% parsed: A struct containing each column parsed from the input file +% as a field and with the column data stored as a vector in that +% field. +% + +% Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. +% +% Use of this source code is governed by a BSD-style license +% that can be found in the LICENSE file in the root of the source +% tree. An additional intellectual property rights grant can be found +% in the file PATENTS. All contributing project authors may +% be found in the AUTHORS file in the root of the source tree. + +table = importdata(filename, ',', 1); +if ~isstruct(table) + error('Malformed file, possibly empty or lacking data entries') +end + +colheaders = table.textdata; +if length(colheaders) == 1 + colheaders = regexp(table.textdata{1}, ',', 'split'); +end + +parsed = struct; +i = 1; +while i <= length(colheaders) + % Checking for a multi-value column. + m = regexp(colheaders{i}, '([\w\t]+)\[(\d+)\]', 'tokens'); + if ~isempty(m) + % Parse a multi-value column + n = str2double(m{1}{2}) - 1; + parsed.(strrep(m{1}{1}, ' ', '_')) = table.data(:, i:i+n); + i = i + n + 1; + elseif ~isempty(colheaders{i}) + % Parse a single-value column + parsed.(strrep(colheaders{i}, ' ', '_')) = table.data(:, i); + i = i + 1; + else + error('Empty column'); + end +end |