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

2 次查看(过去 30 天)
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?

采纳的回答

Mike Garrity
Mike Garrity 2016-4-11
编辑:Mike Garrity 2016-4-11
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 个评论
OldCar
OldCar 2016-4-12
编辑:OldCar 2016-4-15
x and y are 1D vector (I think), they are 1x171 int32 and 1x51 int 32. I enclose xVec,yVec and imageMag. Thanks for your help. What do you think about?

请先登录,再进行评论。

更多回答(0 个)

Community Treasure Hunt

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

Start Hunting!

Translated by