JRCLUST icon indicating copy to clipboard operation
JRCLUST copied to clipboard

traces error: dimension mismatch

Open s-steinberg opened this issue 4 years ago • 0 comments

Trace view won't show due to an error below.

Output of jrc version

JRCLUST v4.0.2 "Edward"

Output of gpuDevice (if you're seeing a GPU error)

                  Name: 'GeForce RTX 2080'
                 Index: 1
     ComputeCapability: '7.5'
        SupportsDouble: 1
         DriverVersion: 11.2000
        ToolkitVersion: 10
    MaxThreadsPerBlock: 1024
      MaxShmemPerBlock: 49152
    MaxThreadBlockSize: [1024 1024 64]
           MaxGridSize: [2.1475e+09 65535 65535]
             SIMDWidth: 32
           TotalMemory: 8.5899e+09
       AvailableMemory: 7.0841e+09
   MultiprocessorCount: 46
          ClockRateKHz: 1710000
           ComputeMode: 'Default'
  GPUOverlapsTransfers: 1
KernelExecutionTimeout: 1
      CanMapHostMemory: 1
       DeviceSupported: 1
        DeviceSelected: 1

The command you used

jrc traces myparam.prm

If manually sorting, what it is you tried to do

N/A

Console output

Error using bsxfun
Non-singleton dimensions of the two input arrays must match each other.
Error in jrclust.views.Figure/multiplot>doMultiplot (line 54)
        YData = bsxfun(@plus, YData/scale, YOffsets(:)');
Error in jrclust.views.Figure/multiplot (line 26)
    [plotKey, YOffsets] = doMultiplot(obj, plotKey, scale, XData, YData, YOffsets, doScatter);
Error in jrclust.views.plotFigTraces (line 56)
    hFigTraces.multiplot('hPlot', hFigTraces.figData.maxAmp, XData, tracesFilt', 1:hCfg.nSites);
Error in jrclust.views.TracesController/show (line 365)
            obj.tracesFilt = jrclust.views.plotFigTraces(obj.hFigTraces, obj.hCfg, obj.tracesRaw, 1, obj.hClust);
Error in JRC/traces (line 21)
    hTraces.show(recID, 0, obj.hClust);
Error in JRC/processArgs (line 246)
            obj.traces();
Error in JRC (line 54)
                    obj.processArgs();
Error in jrc (line 16)
    hJRC = JRC(varargin{:}); 

The input data are raw binary. I tried with different data but I get the same error. Other commands like detect, preview, sort, and manual work. My data are 32 channels. When stopped at the line 54 of multiplot.m, where the error happens, YData is 1x192000 single, YOffsets is 1x32 double.

Changing the line 54 of multiplot.m from

YData = bsxfun(@plus, YData/scale, YOffsets(:)');

to

YData = bsxfun(@plus, YData/scale, YOffsets(:));

can avoid the error in this line, but I get another error:

Error using line
Vectors must be the same length.
Error in jrclust.views.Figure/addPlot (line 243)
                obj.hPlots(plotKey) = hFunPlot(hAx, varargin{:});
Error in jrclust.views.Figure/multiplot>doMultiplot (line 81)
        hFig.addPlot(plotKey, @line, XData(:), YData(:), 'UserData', userData);
Error in jrclust.views.Figure/multiplot (line 26)
    [plotKey, YOffsets] = doMultiplot(obj, plotKey, scale, XData, YData, YOffsets, doScatter);
Error in jrclust.views.plotFigTraces (line 56)
    hFigTraces.multiplot('hPlot', hFigTraces.figData.maxAmp, XData, tracesFilt', 1:hCfg.nSites);
Error in jrclust.views.TracesController/show (line 365)
            obj.tracesFilt = jrclust.views.plotFigTraces(obj.hFigTraces, obj.hCfg, obj.tracesRaw, 1, obj.hClust);
Error in JRC/traces (line 21)
    hTraces.show(recID, 0, obj.hClust);
Error in JRC/processArgs (line 246)
            obj.traces();
Error in JRC (line 54)
                    obj.processArgs();
Error in jrc (line 16)
    hJRC = JRC(varargin{:}); 

Is there any way to fix this? Thank you very much.

s-steinberg avatar Jan 28 '21 10:01 s-steinberg