При построении трехмерного скалярного поля с помощью 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.