Home > bml > signal > bml_reorder_channels.m

bml_reorder_channels

PURPOSE ^

BML_REORDER_CHANNELS changes the order of the channels of a raw

SYNOPSIS ^

function reordered = bml_reorder_channels(cfg,data)

DESCRIPTION ^

 BML_REORDER_CHANNELS changes the order of the channels of a raw

 Use as
   reordered = bml_reorder_channels(cfg,data)
   reordered = bml_reorder_channels(cfg,data)

 data - FT_DATATYPE_RAW
 cfg.order - vector of channel indices in desired order
             if not provided channels are ordered according to 
             cfg.label if present, or alphabetically
 cfg.label - cellstr with desired order of channes
 returns a reordered raw object

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function reordered = bml_reorder_channels(cfg,data)
0002 
0003 % BML_REORDER_CHANNELS changes the order of the channels of a raw
0004 %
0005 % Use as
0006 %   reordered = bml_reorder_channels(cfg,data)
0007 %   reordered = bml_reorder_channels(cfg,data)
0008 %
0009 % data - FT_DATATYPE_RAW
0010 % cfg.order - vector of channel indices in desired order
0011 %             if not provided channels are ordered according to
0012 %             cfg.label if present, or alphabetically
0013 % cfg.label - cellstr with desired order of channes
0014 % returns a reordered raw object
0015 
0016 if ~exist('data','var')
0017   data=cfg;
0018   cfg=[];
0019 end
0020 new_order = bml_getopt(cfg,'order');
0021 label     = bml_getopt(cfg,'label');
0022 if isempty(new_order)
0023   if isempty(label)
0024     [~, new_order] = sort(data.label);
0025   else
0026     assert(all(ismember(label, data.label)),"Invalid label. Unknown channels");
0027     new_order = bml_map(label,data.label,1:length(data.label));
0028   end
0029 end
0030 
0031 for i=1:numel(data.trial)
0032   data.trial{i} = data.trial{i}(new_order,:); 
0033 end
0034 
0035 data.label = data.label(new_order);
0036 reordered=data;

Generated on Tue 25-Sep-2018 10:08:19 by m2html © 2005