При построении трехмерного скалярного поля с помощью Matlab, почему ось X заменяется на Y?

1

Когда я рисую изоповерхность трехмерного скалярного поля A(i,j,k)(i = 1 ~ 31, j = 1 ~ 151, k = 1 ~ 151), используя Matlab, на рисунке индекс j соответствует оси X, i соответствует оси Y. Как Matlab организует 3d данные?

Вот рисунок, который я нарисовал:

вот фигура, которую я нарисовал

Кубическая сетка имеет размер 31x151x151. Но на рисунке длина в направлении X равна 151, длина в направлении Y равна 31. И эта фигура является зеркальным отражением того, который я хочу.

кушак
источник
1
Можете добавить скриншот? Наряду с дополнительной информацией о результате вы ожидаете. Спасибо.
Натан. Эйлиша Ширайни
@ Nathan.EilishaShiraini Конечно, я изменил вопрос. благодарю вас.
створка

Ответы:

0

В соответствии с документацией Matlab для meshфункции , кажется, что ось Y использует первый индекс матрицы, а не второй. Например, EG в (i,j)индексной паре iбудет находиться на оси Y и jбудет на оси X. У меня было довольно обширное обсуждение этого вопроса с коллегами, и, похоже, все сводится к тому, как Matlab хранит свои матрицы внутренне: он хранит список столбцов ( основной порядок столбцов ), здесь есть довольно интересное объяснение: http://fr.mathworks.com/help/matlab/matlab_external/matlab-data.html#f22019

TL; DR первым измерением являются столбцы (Y), затем идут строки (X), затем все дальнейшие оси по порядку.

Натан. Эйлиша Шираини
источник
Спасибо вам за разъяснение! Я до сих пор не понимаю, почему изображение, которое я нарисовал, является зеркальным отображением того, что я хочу о плоскости XZ.
пояс
Я, кажется, понимаю это. потому что если matlab принимает второй индекс в качестве первого измерения, чтобы гарантировать, что система координат по-прежнему правосторонняя, фигура должна быть обращена в измерении, связанном с индексом i A (i, j, k)
sash