Error using sub2ind (line 71)
Out of range subscript.
Error in mrSub2ind (line 28)
linear = sub2ind(dims,x,y,z);
Error in refreshMLRDisplay>getROIImageCoords (line 702)
baseCoordsLinear = mrSub2ind(baseDims,baseCoordsHomogeneous(1,:),baseCoordsHomogeneous(2,:),baseCoordsHomogeneous(3,:));
Error in refreshMLRDisplay>displayROIs (line 824)
[x y s] = getROIImageCoords(view,roi{r}.roiBaseCoords,sliceIndex,baseNum,baseCoordsHomogeneous,imageDims);
Error in refreshMLRDisplay>dispBase (line 544)
[roi,v] = displayROIs(v,hAxis,slice,sliceIndex,baseNum,base.coordsHomogeneous,base.dims,rotate,verbose);
Error in refreshMLRDisplay (line 152)
[v img base roi overlays curSliceBaseCoords] = dispBase(gui.axis,v,baseNum,gui,true,verbose);
Error in mrOpenWindow (line 207)
refreshMLRDisplay(view.viewNum);
Error in mrLoadRet (line 51)
v = mrOpenWindow('Volume',mrLastView);
R2024a: sub2ind
accepts mix of scalars and vectors for subscript inputs
sub2ind
now leverages scalar expansion and accepts a mix of scalars and vectors for subscript inputs. For example, sub2ind(sz,[1 2 3],2)
is now the same as sub2ind(sz,[1 2 3],[2 2 2])
. Previously, the subscript inputs were required to be the same size.
if ~isempty(v) && (anynan(v) || min(v,[],'all') < 1 || max(v,[],'all') > siz_i)
% Verify subscripts are within range
error(message('MATLAB:sub2ind:IndexOutOfRange'));
end
badCoords = find((x < 1) | (x > dims(1)) | ...
(y < 1) | (y > dims(2)) | ...
(z < 1) | (z > dims(3)));
x(badCoords) = nan;
y(badCoords) = nan;
z(badCoords) = nan;
linear = sub2ind(dims,x,y,z);