Note that this reference documentation is identical to the help that is displayed in MATLAB when you type “help ft_select_channel”.

  FT_SELECT_CHANNEL is a helper function that can be used as callback function
  in a figure. It allows the user to select a channel. The channel labels
  are returned.
 
  Use as
    label = ft_select_channel(h, eventdata, ...)
  The first two arguments are automatically passed by MATLAB to any
  callback function.
 
  Additional options should be specified in key-value pairs and can be
    'callback'  = function handle to be executed after channels have been selected
 
  You can pass additional arguments to the callback function in a cell-array
  like {@function_handle,arg1,arg2}
 
  Example 1
    % create a figure
    figure
    cfg = [];
    cfg.channel = {'chan1', 'chan2', 'chan3', 'chan4'};
    cfg.layout  = 'ordered';
    lay = ft_prepare_layout(cfg);
    ft_plot_lay(lay)
 
    % add the required guidata
    info       = guidata(gcf)
    info.x     = lay.pos(:,1);
    info.y     = lay.pos(:,2);
    info.label = lay.label
    guidata(gcf, info)
 
    % add this function as the callback to make a single selection
    set(gcf, 'WindowButtonDownFcn', {@ft_select_channel, 'callback', @disp})
 
    % or to make multiple selections
    set(gcf, 'WindowButtonDownFcn',   {@ft_select_channel, 'multiple', true, 'callback', @disp, 'event', 'WindowButtonDownFcn'})
    set(gcf, 'WindowButtonUpFcn',     {@ft_select_channel, 'multiple', true, 'callback', @disp, 'event', 'WindowButtonDownFcn'})
    set(gcf, 'WindowButtonMotionFcn', {@ft_select_channel, 'multiple', true, 'callback', @disp, 'event', 'WindowButtonDownFcn'})
 
  Example 2 (executed from within a subplot
    % create a figure
    figure
    subplot(2,2,1)
    cfg = [];
    cfg.channel = {'chan1', 'chan2', 'chan3', 'chan4'};
    cfg.layout  = 'ordered';
    lay = ft_prepare_layout(cfg);
    ft_plot_lay(lay) 
 
    % add the channel information to guidata under identifier linked to this axis
    ident              = ['axh' num2str(round(sum(clock.*1e6)))]; % unique identifier for this axis
    set(gca,'tag',ident);
    info               = guidata(gcf);
    info.(ident).x     = lay.pos(:, 1);
    info.(ident).y     = lay.pos(:, 2);
    info.(ident).label = lay.label;
    guidata(gcf, info)
 
    % add this function as the callback to make a single selection
    set(gcf, 'WindowButtonDownFcn', {@ft_select_channel, 'callback', @disp})
 
    % or to make multiple selections
    set(gcf, 'WindowButtonDownFcn',   {@ft_select_channel, 'multiple', true, 'callback', @disp, 'event', 'WindowButtonDownFcn'})
    set(gcf, 'WindowButtonUpFcn',     {@ft_select_channel, 'multiple', true, 'callback', @disp, 'event', 'WindowButtonDownFcn'})
    set(gcf, 'WindowButtonMotionFcn', {@ft_select_channel, 'multiple', true, 'callback', @disp, 'event', 'WindowButtonDownFcn'})
       
 
  Subsequently you can click in the figure and you'll see that the disp
  function is executed as callback and that it displays the selected
  channels.
 
  See also FT_SELECT_BOX, FT_SELECT_POINT, FT_SELECT_POINT3D, FT_SELECT_RANGE, FT_SELECT_VOXEL