У меня есть большой объем данных для импорта в MATLAB, представляющий расположение точек в декартовом пространстве.Что из нижеперечисленного является наиболее обычным для хранения и обработки стандартных данных XYZ?:
ОПЦИЯ # 1
Сохранять координаты X, Y и Z как отдельные n * 1векторы (возможно, внутри структуры?).Это делает:
- Простое построение графиков:
plot3(X, Y, Z)
- Извлечение отдельных точек немного более запутанным
N = [X(i), Y(i), Z(i)]
- Передача всего набора точек в функцию расширяетчисло различных передаваемых аргументов.
OPTION # 2
Сохранять координаты X, Y и Z как один вектор n * 3.
- Построить график немного сложнее:
plot3(XYZ(:, 1), XYZ(:, 2), XYZ(:, 3))
- Извлечь отдельные точки проще:
N = XYZ(i, :)
- Проходить весь набор точек легко - всего одна переменная
Исходя из этого, я подозреваю, что второй является более обычным.
Однако некоторые данные, которые я буду обрабатывать, сложнее, поскольку они считываются в виде сетки, где важен формат сетки.Под этим я подразумеваю, что необработанная форма данных представляет собой матрицу * m * 3 вместо матрицы (n * m) * 3.Тот факт, что точка X (i, j) находится рядом с точкой X (i, j + 1), важна.Опять же, представлены два варианта:
ОПЦИЯ # 1
Сохранение каждой координаты X, Y и Z в виде матрицы n * m.
OPTION # 2
Сохранить все точки в виде матрицы n * m * 3.
Я бы предпочел сделать второе здесь, но некоторые параметры, такие как построение графиков, становятся довольно глупыми:
X = XYZ(:, :, 1);
Y = XYZ(:, :, 2);
Z = XYZ(:, :, 3);
plot3(X(:), Y(:), Z(:));
У меня такое чувство, что для этого должно быть соглашение, особенно в сообществе видения и графики.