How can one create this matrix, part 2

1 visualización (últimos 30 días)
alpedhuez
alpedhuez el 24 de Jul. de 2020
Editada: Bruno Luong el 25 de Jul. de 2020
In the previous post, I have learned that
[X, Y] = meshgrid(0:.1:0.5);
[X(:), Y(:)]
will create a matrix
0 0
0 0.1
0 0.2
...
Now I want to generalize to
[X, Y, Z] = meshgrid(0:.1:0.5);
[X(:), Y(:), Z(:)]
and it creates a matrix
ans = 216×3
0 0 0
0 0.1000 0
0 0.2000 0
0 0.3000 0
0 0.4000 0
0 0.5000 0
0.1000 0 0
0.1000 0.1000 0
0.1000 0.2000 0
0.1000 0.3000 0
But the matrix I want to create is like
0 0 0
0 0 0.1
0 0 0.2
0 0 0.3
0 0 0.4
0 0 0.5
0 0.1 0.1
0 0.1 0.2
0 0.1 0.3
Please advise.

Respuesta aceptada

madhan ravi
madhan ravi el 24 de Jul. de 2020
[X, Y, Z] = ndgrid(0:.1:0.5);
[Z(:), Y(:), X(:)]
  5 comentarios
alpedhuez
alpedhuez el 25 de Jul. de 2020
Yes. But whey (Z,Y,X) not (X,Y,Z)?
Bruno Luong
Bruno Luong el 25 de Jul. de 2020
Editada: Bruno Luong el 25 de Jul. de 2020
Because NDGRID returns result such that the first input change first (more rapidly) and you want the opposite, X change most slowly. Actually the code as written by madhan is confusing, it's clearer this way to me:
[Z,Y,X] = ndgrid(0:.1:0.5);
[X(:), Y(:), Z(:)]
You'll see if 1D-grid of X, Y, Z are different and not all equal to 0.0.1:0:5, it makes a whole world less confusing.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Construction en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by