У меня возник вопрос о том, как сохранить нижний треугольный коэффициент заданной симметричной матрицы (это матрица расстояний) в вектор.симметричная матричная половина векторизации
Как правило, я хотел бы непосредственно генерировать нижние треугольные записи, только присваивая координаты (Y,Z)
набора точек на прямоугольной сетке: и на самом деле это то место, где я ужасно застрял.
Итак, я начал думать о том, чтобы атаковать проблему с несколько иной точки зрения: генерирование матрицы полного расстояния (опять же дано пары), а затем половина векторизации матрицы расстояния.
Тем не менее, я действительно не знаю, как достичь цели с помощью for
петель.
Кроме того, я также знаю, что может быть любое внешнее Java
библиотека, которая реализует функции vech
: Vech возвращает вектор, полученный путем устранения всех supradiagonal элементов квадратной матрицы X
и укладки колонки результат один над другим. Это используется в матричном исчислении, где лежащая в основе матрица симметрична, и было бы бессмысленно сохранять значения выше главной диагонали.
По существу, учитывая матрицу A = {{a,c},{b,d}}
, применяя vech(A)
, результат будет vech(A) = {a,b,d}
.
EDIT
Я имею в виду что-то вроде следующего:
a11 a12 a13 a14
a22 a23 a24
A= a33 a34 (aij = aji)
a44
Packed хранения верхней треугольника A
:
AP = { a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 }
За последнее предложение; что ты уже испробовал? –
@OliCharlesworth: Я пробовал несколько циклов, но не удался, я отредактирую свой вопрос, включая мой опрос. – fpe
Я предлагаю обменивать свой вопрос: спросите, как это сделать, сначала используя стандартные for-loops, а затем укажите, что вы также хотели бы узнать о библиотеке, иначе этот вопрос будет не конструктивным. – Dukeling