Home > functions > device > eeg > vb_eeginfo_make_channel_info.m

vb_eeginfo_make_channel_info

PURPOSE ^

make ChannelInfo from channel label

SYNOPSIS ^

function channel_info = vb_eeginfo_make_channel_info(eeginfo, ch_labels, ch_type)

DESCRIPTION ^

 make ChannelInfo from channel label
 [usage]
   channel_info = vb_eeginfo_make_channel_info(eeginfo, ch_labels, ch_type)
 [input]
        eeginfo : <required> <<struct>> EEGinfo
                :  - This must have the next fields.
                :     .ChannelName
                :     .ChannelID
                :     .ActiveChannel
                :     .ExtraChannelInfo
      ch_labels : <optional> specified channel label list {Nchannel x 1}
        ch_type : <optional> [0] | 1 channel type of channel_info
                :  0) all (sensor channels and external channel(s)
                :  1) only sensor channels
                :  2) only external channel(s)
 [output]
   channel_info : <<struct>>
                :  .Active [Nchannel x 1]
                :  .Name   {Nchannel x 1}
                :  .Type   [Nchannel x 1]
                :  .ID     [Nchannel x 1]
                : - Nchannel = Nchannel_eeg + Nchannel_ext
 [note]
   @see vb_megfile_make_channel_info.m
 [history]
   2009-07-16 (Sako) initial version

 Copyright (C) 2011, ATR All Rights Reserved.
 License : New BSD License(see VBMEG_LICENSE.txt)

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function channel_info = vb_eeginfo_make_channel_info(eeginfo, ch_labels, ch_type)
0002 % make ChannelInfo from channel label
0003 % [usage]
0004 %   channel_info = vb_eeginfo_make_channel_info(eeginfo, ch_labels, ch_type)
0005 % [input]
0006 %        eeginfo : <required> <<struct>> EEGinfo
0007 %                :  - This must have the next fields.
0008 %                :     .ChannelName
0009 %                :     .ChannelID
0010 %                :     .ActiveChannel
0011 %                :     .ExtraChannelInfo
0012 %      ch_labels : <optional> specified channel label list {Nchannel x 1}
0013 %        ch_type : <optional> [0] | 1 channel type of channel_info
0014 %                :  0) all (sensor channels and external channel(s)
0015 %                :  1) only sensor channels
0016 %                :  2) only external channel(s)
0017 % [output]
0018 %   channel_info : <<struct>>
0019 %                :  .Active [Nchannel x 1]
0020 %                :  .Name   {Nchannel x 1}
0021 %                :  .Type   [Nchannel x 1]
0022 %                :  .ID     [Nchannel x 1]
0023 %                : - Nchannel = Nchannel_eeg + Nchannel_ext
0024 % [note]
0025 %   @see vb_megfile_make_channel_info.m
0026 % [history]
0027 %   2009-07-16 (Sako) initial version
0028 %
0029 % Copyright (C) 2011, ATR All Rights Reserved.
0030 % License : New BSD License(see VBMEG_LICENSE.txt)
0031 
0032 % --- CHECK ARGUMENTS --- %
0033 if ~exist('eeginfo', 'var'), eeginfo = ''; end
0034 if ~exist('ch_labels', 'var'), ch_labels = []; end
0035 if ~exist('ch_type', 'var'), ch_type = []; end
0036 [eeginfo, ch_labels, ch_type] = ...
0037   inner_check_arguments(eeginfo, ch_labels, ch_type);
0038 
0039 % --- MAIN PROCEDURE --------------------------------------------------------- %
0040 %
0041 org_eeg_label = vb_eeginfo_get_channel_label(eeginfo);
0042 org_ext_label = vb_eeginfo_get_channel_label_extra(eeginfo, false);
0043 
0044 % --- matching with target channel labels
0045 
0046 % ----- EEG CHANNELS
0047 target_eeg_labels = [];
0048 if ch_type ~= 2 && ~isempty(org_eeg_label) && ~isempty(ch_labels)
0049   [eeg_idx] = vb_util_get_index(org_eeg_label, ch_labels);
0050   if ~isempty(eeg_idx)
0051     target_eeg_labels = org_eeg_label(eeg_idx);
0052   end
0053 else
0054   eeg_idx = [];
0055 end
0056 
0057 % ----- EXTRA CHANNELS
0058 target_ext_labels = [];
0059 if ch_type ~= 1 && ~isempty(org_ext_label) && ~isempty(ch_labels)
0060   [ext_idx] = vb_util_get_index(org_ext_label, ch_labels);
0061   if ~isempty(ext_idx)
0062     target_ext_labels = org_ext_label(ext_idx);
0063   end
0064 else
0065   ext_idx = [];
0066 end
0067 
0068 extra_info = eeginfo.ExtraChannelInfo;
0069 
0070 % ----- Active
0071 if vb_info_active_channel_is_valid(eeginfo)
0072   active_ch = vb_info_get_active_channel(eeginfo);
0073   eeg_active = active_ch(eeg_idx);
0074   
0075   if ~isempty(extra_info.Channel_active)
0076     ext_active = extra_info.Channel_active(ext_idx);
0077   else
0078     % temporary
0079     Nch = length(ext_idx);
0080     ext_active = ones(Nch,1);
0081   end
0082   channel_info.Active = [eeg_active;ext_active];
0083 else
0084   Nch = length(target_eeg_labels)+length(target_ext_labels);
0085   channel_info.Active = ones(Nch,1);
0086 end
0087 
0088 % ----- Name
0089 channel_info.Name = [target_eeg_labels;target_ext_labels];
0090 
0091 % ----- Type
0092 % ----- all types are set '1' for now
0093 len_eeg_ch = length(target_eeg_labels);
0094 eeg_type = ones(len_eeg_ch, 1);
0095 
0096 if ~isempty(extra_info.Channel_type)
0097   ext_type = extra_info.Channel_type(ext_idx);
0098 else
0099 %   Nch = length(ext_idx);
0100 %   ext_type = ones(Nch,1);
0101   % ----- undefined yet
0102   ext_type = [];
0103 end
0104 channel_info.Type = [eeg_type;ext_type];
0105 
0106 % ----- ID
0107 eeg_id = eeginfo.ChannelID(eeg_idx);
0108 ext_id = extra_info.Channel_id(ext_idx);
0109 channel_info.ID = [eeg_id;ext_id];
0110 return;
0111 %
0112 % --- END OF MAIN PROCEDURE -------------------------------------------------- %
0113 
0114 % --- INNER FUNCTIONS -------------------------------------------------------- %
0115 %
0116 % --- inner_check_arguments()
0117 %
0118 function [eeginfo, ch_labels, ch_type] = ...
0119   inner_check_arguments(eeginfo, ch_labels, ch_type)
0120 
0121 func_ = mfilename;
0122 if isempty(eeginfo)
0123   error('(%s)eeginfo is a required parameter', func_);
0124 end
0125 
0126 if isempty(ch_type)
0127   ch_type = 0; % all channels
0128 end
0129 return;
0130 %
0131 % --- end of inner_check_arguments()
0132 %
0133 % --- END OF INNER FUNCTIONS ------------------------------------------------- %
0134 
0135 %%% END OF FILE %%%

Generated on Tue 27-Aug-2013 11:46:04 by m2html © 2005