


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

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;