Comments (3)
Hi @jakkubu,
It's already implemented for dense entries: dense matrices and dense vectors. The thing is that it is uncommon operation for sparse data structures, since it can destroy the whole idea of using compressed storage. I desiced to no provide this method in API for sparse things. Anyway, what can you do. Just use DenseMatrix
and DenseVector
interfaces instead:
DenseMatrix a = new Basic1DMatrix(...);
double aa[][] = a.toArray();
DenseVector b = new BasicVector(...);
double bb[] = b.toArray();
So, if you want to dump sparse entry into double array, you have to do that by you own risk with following ideas:
SparseMatrix a = new CRSMatrix(...);
double aa[][] = ((DenseMatrix) a.copy(Matrices.DEFAULT_DENSE_FACTORY)).toArray();
SparseVector b = new Compressedvector(...);
double bb[] = ((DenseVector) b.copy(Vectors.DEFAULT_DENSE_FACTORY)).toArray();
Anyway, I am open for discussion about this issue.
from la4j.
Hi @vkostyukov
ok - now i understand the idea.
I'm using small matrices so DenseMatrix
will do the work, but why the second solution is risky?
from la4j.
Well, it is not safe to convert sparse structures into dense representations. You can easily get OutOfMemory
error. Let's say you have 1 000 000 x 1 000 000
sparse matrix with something like 1000
non-zero elements. How many space does it take to convert it to array? Just calc it: 1 000 000 * 1 000 000 * 8
~ 7450 Gb
.
So, again. Converting matrices into array is an operation that sutable onle for dense structures, since it is not safe do that with sparse ones.
from la4j.
Related Issues (20)
- Full support of MatrixMarket format HOT 1
- Setting elements to zero in CRSMatrix HOT 12
- Feature request: linear spaces HOT 2
- Validation error in Matrix.insert HOT 4
- Proper way to migrate to java 8
- CCSMatrix not serializable HOT 3
- Can't use toBinary method on large matrices HOT 16
- InsertRow for matrix with 0 rows failing
- insertRow/insertColumn at the end of a Matrix
- Matrix multiplication bug: "1 does not equal to 1."
- Unordered maps cause invalid vectors to be created.
- CI is failing HOT 1
- Symmetric matrix are not recognized using fromMatrixMarket HOT 2
- Loading Big files using fromMatrixMarket (Memory Performance) HOT 2
- Matrix's sum() method isn't working properly. HOT 1
- Matrix Power() is not working properly HOT 4
- Sparse Matrix, self additon w/ transpose
- java.lang.IndexOutOfBoundsException: Row '-32767' is invalid
- Cannot insert new column as last column.
- SparseMatrix.zero uses CCSMatrix instead of CRSMatrix?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from la4j.