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

356
sash

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

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

here is the figure I drew

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

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

1 ответ на вопрос

0
Nathan.Eilisha Shiraini

В соответствии с документацией 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. sash 5 лет назад 0
Я, кажется, понимаю это. потому что если matlab принимает второй индекс в качестве первого измерения, чтобы гарантировать, что система координат по-прежнему правосторонняя, фигура должна быть обращена в измерении, связанном с индексом i A (i, j, k) sash 5 лет назад 0

Похожие вопросы