Reputation: 51
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
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