Лексикографически упорядочить матрицу в вектор - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь реализовать алгоритм, содержащийся в этой статье здесь , и я добился значительного прогресса. Однако я не уверен, что статья подразумевает под этим отрывком:

В принципе, двумерная задача в (2) может быть сведена к одномерной задаче formula. Здесь векторы formula, formula и formula получены путем лексикографического упорядочения матриц formula, formula, formula.

Для справки, уравнение (2) имеет вид formula.

Также, согласно тексту, форма formula - это N1xN2, а formula - (N1 * N2x1). Однако я не совсем уверен, чего они хотят. Все это выходит за рамки моей компетенции. Ссылки, которые я нашел, рассматривают проблему с буквами, но с матрицей чисел, я должен рассмотреть каждое значение элемента или каждую позицию элемента (x, y)? Итак, formula будет:

  • m_r = np.sort(M_r, axis=None)[:, np.newaxis] или
  • m_r = M_r.reshape((N1*N2, 1))?

Или мне придется использовать np.lexsort, или np.ravel, Mtil.flatten?

Позже они также утверждают, что

Матрица formula затем оценивается путем переупорядочения formula в матричной записи.

Поэтому, если я использую сортировку, мне придется также получить индексы элементов перед сортировкой, чтобы их не сортировать. Оглядываясь вокруг, я увидел, что могу использовать двойное argsort. Если бы мне нужно было только reshape вернуть его назад, это было бы просто m_r.reshape((N1,N2)).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...