Я новичок в clojure и функциональном программировании, и мне нужно преобразовать Java-класс org.apache.commons.math3.linear.OpenMapRealMatrix
в вектор clojure.Преобразование Java-класса в вектор - Clojure
Как это можно сделать?
Я новичок в clojure и функциональном программировании, и мне нужно преобразовать Java-класс org.apache.commons.math3.linear.OpenMapRealMatrix
в вектор clojure.Преобразование Java-класса в вектор - Clojure
Как это можно сделать?
Если вы хотите сохранить двумерную матрицу, чуть ниже кода в порядке :)
(mapv #(vec (.getRow matrix %))
(range (.getRowDimension matrix)))
Трудно дать прямой ответ, потому что преобразование из двумерной матрицы в одномерный вектор включает в себя выбор способа итерации по матрице. Если мы выбираем слева направо сверху вниз один подход будет выглядеть примерно так:
(->> (for [r (range 0 (.getRowDimension matrix))]
(vec (.getRow matrix r)))
flatten
vec) ;; this step is optional
Или если у вас есть только один ряд, то вы можете просто позвонить (vec (.getRow matrix 0))
Спасибо. Да, вы правы, я не уточнил, как перебирать матрицу. Я нуждался в нем без дополнительного шага. :) – Savas
спасибо. он отлично работает! :) – Savas