I was wondering whether any of the well-known matrix libraries for Java, such as Colt or EJML, actually provide similar functionality as MatLab? For instance, I can't seem to find anywhere in the definition of their API simple method to add or subtract two matrices/vectors by each other, which seems to be the most common operation used. Am I missing something?
相关问题
- Delete Messages from a Topic in Apache Kafka
- Jackson Deserialization not calling deserialize on
- How to maintain order of key-value in DataFrame sa
- StackExchange API - Deserialize Date in JSON Respo
- Extract matrix elements using a vector of column i
The interface for COLT gives you a generic OP:
assign(matrix, function)
, which you can use to add or subtract matrices and vectors.As the javadocs for
assign()
says:So by using using an addition function as
function
- you can add matrices.Try Apache Commons Math library. org.apache.commons.math3.linear package contains the functions that you want. Home page
You can use this one. It is very siple and supply basic matrix operations.
You can add/substract/multiply etc 2d matrixes and vectors.
Some Java libraries for linear algebra are:
EDIT maybe we can extend this list whenever one comes across and you know - the world keeps moving:
Note: Personally: I use Apache Commons Math and Colt in my own project (http://www.finmath.net). While commons math is actively developed, I found that Colt is still faster in some tasks (like Eigenvalue decomposition). For that reason I use some kind of wrapper which allows me to quickly switch the underlying library (I only need a few things like solving systems of equations and Eigenvalue decomposition).
There is also la4j library that supports functional programming features as functors. You can use transform() method with manual hi-order function.