Какие методы используются для визуализации 4-мерного массива?

Массив (ряд элементов):

[ ][ ][ ][ ][ ][ ]

A 2-D-массив (таблица):

[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]
[ ][ ][ ][ ][ ][ ]

A 3-D Массив:

//Imagine the above table as a cube ( a table with depth )

Как визуализировать 4-мерный массив?

Ближайшим я могу прийти несколько кубов, поэтому для int[,,,] [5,10,2,7] будет куб 5, строка 10, столбец 2, слой (глубина) 7.

Я не уверен, что это лучший способ визуализировать 4-мерный массив, хотя... и я не уверен, что это лучший способ научить его... однако у него есть то преимущество, расширяемый (кубики строк, таблица кубов, куб кубов (6-й массив)

Кубы во времени - это еще один способ, о котором я могу думать.

Я на правильном пути здесь?

Ответы

Ответ 1

Если вы пытаетесь отобразить вывод программы для конечных пользователей, то вы на правильном пути.

Если вы пытаетесь научить его, я бы кратко использовал этот метод, а затем я углубился, объясняя, как компьютер держит их всех в непрерывной памяти - http://www.plantation-productions.com/Webster/www.artofasm.com/Windows/HTML/Arraysa2.html. Я думаю, что это лучший способ понять это.


Исходная ссылка больше не работает, но я нашел ее в Интернет-архиве здесь - http://web.archive.org/web/20120410120743/http://webster.cs.ucr.edu/AoA/Windows/HTML/Arraysa2.html


Обновлен первый абзац, чтобы показать обновленную ссылку, благодаря @OskensoKashi.

Ответ 2

Вот как я научу это: ряд кубов. Позиция (или номер куба) в этой строке является 4-м измерением.

И если вы хотите 5-мерные, теперь рисуйте столбцы и строки - кубов!

Для 6 измерений, изобразите строки и столбцы кубов (как для 5 измерений), и теперь добавьте "слои" этих строк и столбцов.

... Для 7 измерений представьте все вышеперечисленное - в кубах в одной строке!;)

Yup, он кубизирует весь путь вниз.

Ответ 3

Я не могу его здесь рисовать, но визуализирую его как строку (или массив) кубов.

Другой способ - сначала взять ваше представление куба для трехмерного массива. Теперь замените куб в вашем уме дочерним деревянным блоком и выстройте несколько блоков рядом друг с другом.

Ответ 4

Визуализации в более чем трех измерениях не будут очень интуитивными - как бы вы ни старались. Но вы на правильном пути - изменяющиеся во времени объекты - это распространенный метод визуализации более объемных данных.

Трехмерный объект может быть визуализирован с изменяющимся во времени пересечением объекта с плоскостью, когда объект перемещается по плоскости - например, проходящая через плоскость шара показывает, что круг, растущий от точки к диску с тем же радиус как сфера и снова сжимается до точки.

То же самое можно сделать с четырехмерными объектами. Они визуализируются как пересечение объекта с фиксированным трехмерным пространством, в то время как объект движется вдоль четвертого измерения.

Ответ 5

Визуализация 3-мерных размеров в виде кубов и 4-мерных размеров, как линия кубов, имеет смысл, но, как вы видите, ее трудно расширить. То, как я обычно думаю, это заставить визуализацию в 2 измерения. Обычно это самый простой способ подумать о том, как массивы хранятся на C, например. 2-мерный массив - это всего лишь массив указателей на большее количество массивов или массив массивов. Думать об этом так легко пригодится, если вам действительно нужно попытаться представить 3-мерные данные в двумерном формате, таком как электронная таблица. Дополнительные размеры должны быть добавлены в виде столбцов в столбцах или рядах внутри строк.

На самом деле визуализация его быстро ранит ваши глаза, но по крайней мере ее можно нарисовать на доске, и для добавления дополнительных измерений не требуется много воображения.

1-мерный (массив)

[] [] [] []

2-мерный (массив массивов)

[ [] [] ]  [ [] [] ]  [ [] [] ]  [ [] [] ]

3-мерный (массив массивов массивов)

[  [ [] [] ]  [ [] [] ]  ]   [  [ [] [] ]  [ [] [] ]  ]

Ответ 6

Это зависит от того, какие данные вы пытаетесь визуализировать. Для некоторых ситуаций, которые у меня были до того, как 2D/3D изображение + цвет RGB работал нормально. 2D-изображение образует два измерения, а красный, зеленый, синий цвета, которые используются для рисования точки, добавляют еще 3 измерения.

Например, посмотрите нормальные карты, используемые в разработке игр. Он визуализирует поверхность (2D) с нормальным вектором в каждой точке (3D). Векторы обозначаются компонентами цвета x ~ red, y ~ green, z ~ blue, сдвинутыми на 127, чтобы сохранять отрицательные значения.

Ответ 8

Hypercube! Но на самом деле, если вам нужна визуализация, предположите, что каждый бокс, созданный вами из 3D-массива, теперь имеет массив внутри. Как будто теория струн многомерных идей.

Ответ 9

Одна визуализация - это карты с одной поверхности на другую. Представьте, что ваши руки парят над разными точками на столе: в любое время, когда вы двигаетесь с одной стороны, вы получаете совершенно другое значение.

Ответ 10

Старая нить, но вот хорошая ссылка с хорошим примером и приятными фотографиями. Может пригодиться кому-то!

http://sp-productions.zxq.net/c++%20tutorial2.html

Ответ 11

Написал что-то, чтобы помочь себе понять это.https://medium.com/@thegrowingunion/visualizing-multidimensionalarrays-4d-arrays-and-beyond-ae6ae536f07f

Основная идея заключается в том, что каждый дополнительный массив добавляет строку/столбец ВНУТРИ другой строки/столбца в электронную таблицу/матрицу. Итак, ваш верхний ряд/массив A-Z Для каждого экземпляра А. В нем есть еще один массив a-z Который может быть перекрестной ссылкой с 1-256. (Второе измерение). Так что 3D-массив на 2D-плоскости.

Для простого 5D массива из [2] [2] [2] [2] [2]

Позиция 1,1 СОДЕРЖИТ все 8 пространств данных в последних 3 массивах. (Поэтому, если вы посмотрите на изображение ниже, вы можете увидеть "А1" и заметить, что есть один отдельный блок А1 И есть 8 отдельных блоков.

Это как русские куклы. Каждый массив содержит все массивы после него.

Это намного легче понять с помощью изображения. :)

5d Array

Ответ 12

Если вы должны были отобразить этот 4d-массив в качестве таблицы 2d, то каждая ячейка содержит таблицу. Таким образом, основная таблица - первая 2d-таблица, а ячейки - это 2-я 2-я таблица ".

          | col 1    |   col 2  | col 3
___________________________________________
row 1     | 2d table | 2d table | 2d table 
-------------------------------------------
row 2     | ""  ""   | ""  ""   | "" ""