function handles = plot_matrix (t, data, opt_strct, leg_arr, colourarr, linesize)
if nargin < 6
linesize = 1;
end
if nargin < 5
colourarr = ['bgrmckbgrmckbgrmckbgrmckbgrmckbgrmck'];
colourarr = get(0, 'DefaultAxesColorOrder'); colourarr = repmat(colourarr, size(data,2), 1);
end
if isempty(colourarr); colourarr = ['bgrmckbgrmckbgrmckbgrmckbgrmckbgrmck']; end
ds = 1;
shift = 0;
zero_means = 0;
plotloglog = 0;
normalize_everything = 0;
if exist('opt_strct','var')
if ~isempty(opt_strct);
if isfield (opt_strct,'ds'); ds = opt_strct.ds; end
if isfield (opt_strct,'shift'); shift = opt_strct.shift; end
if isfield (opt_strct,'zero_means'); zero_means = opt_strct.zero_means; end
if isfield (opt_strct,'plotloglog'); plotloglog = opt_strct.plotloglog; end
if isfield (opt_strct,'normalize_everything'); normalize_everything = opt_strct.normalize_everything; end
end
end
if normalize_everything
for jj = 1:size(data,2)
xtemp = data(:,jj);
xtemp = xtemp - mean(xtemp);
xtemp = xtemp / std(xtemp);
data(:,jj) = xtemp;
end
end
t = downsample(t, ds);
for i = 1:size(data,2)
if ischar(colourarr)
currcolour = colourarr(i);
else
currcolour = colourarr(i,:);
end
plotdata = data(:,i);
if zero_means; plotdata = plotdata - mean(plotdata); end
plotdata = downsample(plotdata, ds);
if ~plotloglog
handles.plot = plot (t, plotdata + (i-1)*shift, 'Color', currcolour, 'LineWidth',linesize); hold on;
else
loglog(t, plotdata, 'Color', currcolour, 'LineWidth',linesize); hold on;
if (shift ~= 0)
handles.plotlog = loglog(t, plotdata + (i-1)*shift, 'Color', currcolour, 'LineWidth',linesize); hold on;
end
end
end
if exist('leg_arr','var')
if ~isempty(leg_arr)
for i = 1:length(leg_arr)
tempstr = leg_arr{i};
leg_arr{i} = strrep (leg_arr{i}, '_', ' ');
end
handles.legend = legend (leg_arr);
end
end
end