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

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

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

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

1 ответ

Решение

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

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

Другие вопросы по тегам