How can one create this matrix, part 2
조회 수: 1 (최근 30일)
이전 댓글 표시
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.
댓글 수: 0
채택된 답변
madhan ravi
2020년 7월 24일
[X, Y, Z] = ndgrid(0:.1:0.5);
[Z(:), Y(:), X(:)]
댓글 수: 5
Bruno Luong
2020년 7월 25일
편집: Bruno Luong
2020년 7월 25일
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.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Construction에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!