Is there an efficient way to create a 3 dimensional sparse matrix?

7 visualizzazioni (ultimi 30 giorni)
Hello, all ! I have some 2 dimensional large sparse matrix (may be more than 102,400,000 * 102,400,000) and want them to generate a 3 dimensional sparse matrix. I have tried the ndSparse function, but through profile report, it occupies lots of time. I am wandering if there are some other more efficient methods are slove this problem ! Thank you very much!
  3 Commenti
Matt J
Matt J il 28 Ott 2016
I have some 2 dimensional large sparse matrix (may be more than 102,400,000 * 102,400,000) and want them to generate a 3 dimensional sparse matrix
You mean you want to stack them to create a sparse array of size 102400000 x 102400000 x N? What is the density of these arrays (percentage of of nonzeros) and what will you do with them?
Jason
Jason il 7 Nov 2016
Hi, Matt! your understand is right, I want creat a 3 dimensional matrix, each page is a 2 dimensional sparse matrix. The percentage of nonzeros is varied with the size of the sparse matrix. Because I used Spdiags function to creat the sparse matrix, which covers six diagonals of it.
I want repmat the sparse matrix to creat a 3 dimensional matrix, such as N*N*A. For each page of matrix, it multiply a vextor, such as N*1.Then, I need to find the munimum value and column number of each row.

Accedi per commentare.

Risposta accettata

Jan
Jan il 28 Ott 2016
A solution depends on what you want to do with the data:
All sparse methods I know are optimized for 2D array manipulations. Therefore I assume, that the creation of the 3D-sparse array will not be the bottleneck for the complete program. If you do not need optimized 2D matrix manipulation methods, you can store the data in a cell array of 2d sparse matrices also, or in one 2D sparse array using a conversion of the indices.

Più risposte (0)

Categorie

Scopri di più su Resizing and Reshaping Matrices in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by