# imregionalmax to find peaks in 3d. I get an error Index exceeds matrix dimensions.

3 views (last 30 days)
OldCar on 11 Apr 2016
Commented: Image Analyst on 15 Apr 2016
As said in the title I have got an error using imregionalmax. I have two monotone variable xVec, yVec and a third dependent variable imageMag that is experimental value. imageMag is 31x593. I have used
x=xVec;
y=yVec;
z=imageMag;
mesh(x,y,z,'FaceColor','interp')
ix = find(imregionalmax(z));
hold on
plot3(x(ix),y(ix),z(ix),'r*','MarkerSize',24)
but it says that index exceeds matrix dimensions. Why?
##### 1 CommentShowHide None
Azzi Abdelmalek on 11 Apr 2016
What line?

Mike Garrity on 11 Apr 2016
Edited: Mike Garrity on 11 Apr 2016
I'm just guessing, but that code snippet is assuming that x & y are full, 2D arrays. The mesh function allows for another case where they're vectors. From the name of your variables, I would guess that you've got that case.
If that's the case, you can expand the vectors out to 2D arrays using meshgrid :
[x,y] = meshgrid(xVec,yVec);
z = imageMag;
mesh(x,y,z,'FaceColor','interp')
ix = find(imregionalmax(z));
hold on
plot3(x(ix),y(ix),z(ix),'r*','MarkerSize',24)
##### 2 CommentsShowHide 1 older comment
Image Analyst on 15 Apr 2016
imregionalmax is meant to work with a volumetric image in 3D, not 1-D vectors.

### Categories

Find more on Matrix Indexing in Help Center and File Exchange

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by