webrtc/tools-webrtc/matlab/parseLog.m
Henrik Kjellander b5ffc149a9 Create top-level dir tools-webrtc and start moving things into it.
In order to get rid of the Chromium checkout for WebRTC, the plan is to
instead of cloning all of Chromium, only clone the build, third_party and
tools sub-directories. In order to do so, we must first move all things
checked into the WebRTC tools/ directory somewhere else.
Due to many hardcoded assumptions of tools/ existing in Chrome, this
is only manageble solution to the problem.

This first step only moves stuff not used by the build system or bots,
and deletes a few unused directories.

BUG=webrtc:5006
R=henrika@webrtc.org

Review-Url: https://codereview.webrtc.org/2584433002 .
Cr-Commit-Position: refs/heads/master@{#15622}
2016-12-15 08:49:06 +00:00

54 lines
1.6 KiB
Matlab

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