Back to the main page.

Bug 1076 - resolve the indx input argument that is used in ft_topoplotTFR

Reported 2011-10-26 15:05:00 +0200
Modified 2011-11-09 16:45:12 +0100
Product: FieldTrip
Component: plotting
Version: unspecified
Hardware: PC
Operating System: Mac OS
Importance: P1 normal
Assigned to: Jan-Mathijs Schoffelen
Depends on:
See also:

Robert Oostenveld - 2011-10-26 15:05:31 +0200

ft_multiplotTFR has the following section if Ndata>1 && ~isnumeric(varargin{end}) for k=1:Ndata if k>1 % create a new figure for the additional input arguments % ensure new figures are all in the same size/position p = get(gcf, 'Position'); f = figure(); set(f, 'Position', p); end ft_topoplotTFR(cfg, varargin{1:Ndata}, indx); indx = indx + 1; end return end This call with multiple inputs is done by ft_topoplotIC and recursively by ft_topoplotTFR itself

Jan-Mathijs Schoffelen - 2011-11-03 14:56:04 +0100

investigated and resolved with revision 4665. The recursive call is done to allow for multiple input arguments. This is achieved when ft_topoplotTFR is called from withing ft_singleplotER (interactive mode), when more than one data argument exists. To ensure correct behavior ft_topoplotTFR cannot be called from within a loop with just a single input data argument, because in the interactive mode the next function needs all data arguments again, and not only the one which is used for the plotting. I removed the FIXME statement with respect to the ft_checkdata call, because it seems to work fine now.

Robert Oostenveld - 2011-11-03 16:37:55 +0100

thanks for the explanation, that makes it clear. An alternative implementation would be to pass the index through the cfg instead through the last varargin. And yet another alternative would be to somehow add the varargin data to the figure with guidata or appdata or something similar. But I suggest not to change it until a concrete need for that arises ;-)