Преобразуйте матрицу Инкантера во вложенный вектор

Рассмотрим функцию, которая выводит матрицу Инкантера.

Вот пример матрицы, содержащей выходные данные функции:

A 6x4 matrix 
-4.77e-01 8.45e-01  1.39e-01 -9.83e-18
 8.55e-01 2.49e-01  1.33e-01  2.57e-17
-2.94e-03 6.60e-03 -9.63e-01  1.16e-16
...
 6.64e-09  2.55e-08  1.16e-07 -1.11e-16
-1.44e-01 -3.33e-01  1.32e-01 -7.07e-01
-1.44e-01 -3.33e-01  1.32e-01  7.07e-01

Я хотел бы продолжить анализ строк матрицы, которые представляют собой точки. Функция, которую я хочу передать матрице Инкантера, принимает вложенные векторы в качестве входных данных.

Таким образом, функции потребуются вышеуказанные данные в форме

[[-4.77e-01 8.45e-01  1.39e-01 -9.83e-18]  [8.55e-01 2.49e-01  1.33e-01  2.57e-17]
 [-2.94e-03 6.60e-03 -9.63e-01  1.16e-16]  [6.64e-09  2.55e-08  1.16e-07 -1.11e-16]
 [-1.44e-01 -3.33e-01  1.32e-01 -7.07e-01] [-1.44e-01 -3.33e-01  1.32e-01  7.07e-01]]

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


person sunspots    schedule 24.03.2014    source источник


Ответы (1)


Вы можете сделать это с помощью встроенной to-vect функции:

(to-vect m)

или с помощью встроенной to-list функции:

(to-list m)

Обе функции будут создавать вектор векторов при наличии матрицы:

=> (def m (matrix [[1 2] [3 4]]))
 A 2x2 matrix
 -------------
 1.00e+00  2.00e+00 
 3.00e+00  4.00e+00 

=> (to-vect m)
[[1.0 2.0] [3.0 4.0]]
=> (to-list m)
[[1.0 2.0] [3.0 4.0]]
person Leonid Beschastny    schedule 24.03.2014