user1200276
user1200276

Reputation: 51

Error: Input grid is not a valid Meshgrid

I have a question. So I have a 3D matrix of XxYxZ = 10x5x20. I want to plot this matrix with the help of isosurface. So first I need to create a mesh grid, but here comes the first problem when I say: [X,Y,Z] = meshgrid(1:10,1:5,1:20) I get a grid of 5x10x20, but I want 10x5x20. Why is this? My idea was to just change the X and Y [Y,X,Z] = meshgrid(1:10,1:5,1:20) When I try to plot the matrix with the help of this grid: isosurface(X,Y,Z,M) I get the error "Input grid is not a valid MESHGRID"

What is the problem?

Thank you

Upvotes: 2

Views: 6303

Answers (1)

Daniel
Daniel

Reputation: 36710

You got screwed by matlab, the X-Dimension is the second and the Y-Dimension is the first. Use it as documented:

[m,n,p] = size(V)
[X,Y,Z] = meshgrid(1:n,1:m,1:p)
isosurface(X,Y,Z,V)

Please notice the swapped order of n and m in the first and second line.

Upvotes: 6

Related Questions