Questions tagged [sparse-arrays]
Questions on the construction and manipulation of sparse arrays in Mathematica, with functions like SparseArray[] and Band[].
335 questions
5
votes
1
answer
134
views
How to quickly extract a consecutive portion of a sparse vector?
Say I have this very sparse vector of gigantic size:
...
3
votes
1
answer
97
views
BinCounts: force/block SparseArray output
BinCounts sometimes outputs data as SparseArray, and sometimes Normal.
This does not depend ...
0
votes
2
answers
163
views
Creating a large sparse array
I want to create a large sparse matrix by given 2 matrices with dimensions of $m\times m$ and $n\times n$. It will not be $6\times 6$ as in the picture, I only tried to give a simple example. I do not ...
4
votes
1
answer
280
views
How does Mathematica MatrixExp Krylov method scale with sparse matrices? [closed]
People say that mathematica is not as good as matlab for nunmerics. For my specific use case, I am trying to solve differential equations with the MatrixExp method ...
1
vote
0
answers
130
views
Efficient eigenvalue calculation of large matrix
My question is related to my issue from yesterday (Initializing very large matrices). It was recommended to use SparseArray to initialize large matrices efficiently....
3
votes
2
answers
191
views
Best way to extend the size and add terms to a SparseArray without expanding
Let's say I have a "small" SparseArray of any size, in the example $2\times2$
...
3
votes
1
answer
151
views
There is a mistake when using SparseArray in the Table function
I discovered a difference between version 12.0 and version 14.0 in how they handle SparseArray within the Table function.
For ...
0
votes
0
answers
134
views
Efficient construction of Hermitian block matrix
I need to construct large Hermitian matrices $H$, which can be built out of blocks. The matrix $H$ is of total size $Lx\times Ly$, with blocks of size $Ly$. For $Lx=5,\,Ly=3$ and $L=2$ (which is the ...
3
votes
1
answer
255
views
Arnoldi method for generalized eigenvalue problem with sparse matrices
I would like to solve a generalized eigenvalue problem involving sparse matrices using the Arnoldi method. I would like to use the Arnoldi method in the hope of speeding up the calculation.
Problem is,...
6
votes
1
answer
80
views
Workaround for SparseArray "ExplicitPositions" in version 12.0
I have some work that utilizes the "ExplicitPositions" property of Sparse Arrays that was at least available starting at version 13.0. However, I am trying to run some of my work on a ...
4
votes
2
answers
187
views
Speed up sparse Hermitian matrix-vector product
I am interested in speeding up as much as possible the dot product in the specific case of a multiplication of a $n\times n$ sparse hermitian matrix $H$ (where $n$ is typically large, let's say $\...
6
votes
1
answer
197
views
MapIndexed on a table of SparseArray structures produces different output in Mathematica 12 and 14.0
Here is a snippet I use to dynamically define a bunch of functions f[i][x_]:
...
7
votes
3
answers
283
views
Counting non-zero multiplications in large sparse matrix multiplications
Suppose I have several large, fixed, sparse matrices of real-valued entries. To make things simple, assume each is $n \times n$. I will multiply them, e.g., matA.matB.matC. Of course I can reduce ...
3
votes
2
answers
260
views
Creating a sparse matrix
I would like to create the following sparse matrix
\begin{equation}
A =
\begin{pmatrix}
a1+b1 t & k-1 & 0 & \ldots &0 \\
a2^{2}+b2^{2} t & a1+b1t & k-2 & \ldots &0 \...
5
votes
2
answers
299
views
Efficiently construct a SparseArray of a given "shape"
I have a given SparseArray, let's call it A.
I want to construct another SparseArray, let's call it B, which has the same "shape" as A.
Right now, I construct B by applying a certain ...
1
vote
1
answer
275
views
Why does using a sparse matrix for least squares instead slow down the speed?
Here is the code. The matrix appears to be relatively sparse in terms of its visual representation, but why does using least squares result in significantly slower speed compared to the previously ...
2
votes
0
answers
91
views
Performance of multiplying two identity matrices
I am running Mathematica 13.3.1.0 on a M1 Mac, and I ran the following codes to check on the time spent on matrix multiplication.
...
0
votes
0
answers
118
views
Sparse Kronecker Product of Pauli Matricies
Suppose I have a list of Pauli matrices (X, Z and I type)
paulis = {x,z,z,i,z,x,i,z};
I would like to compute a sparse array equivalent to
$$x \otimes z\otimes z \...
1
vote
1
answer
110
views
Best way to Simplify (or applying other functions to) a SymmetrizedArray
I wanted to perform an element-wise Simplify[] on a SymmetrizedArray, but I couldn't find an efficient way to do so without converting it to a "Normal" ...
8
votes
1
answer
370
views
How can I prevent conversion of a SparseArray to a DenseArray?
The Problem
I'm trying to implement an efficient Whitker-Eliers smoother in Mathematica. In Matlab, this is a few lines of code (taken from the SI of the above paper):
...
5
votes
2
answers
235
views
Reshaping sparse arrays to have extra index
I have an $n \times m \times p$ array, let's call it $r$.
I want to obtain an $n \times m \times p \times 5$ array (let's call it $q$) where $q$ is the same as $r$ except that every non-zero component ...
6
votes
1
answer
164
views
DeleteDuplicates without destroying SparseArray
When I use DeleteDuplicates to delete equal rows of a sparse array, the output is not a sparse array anymore. In my application, the sparse arrays are huge but very ...
0
votes
2
answers
107
views
Transformation invariant subspace of three-component array
I have a large sparse array A with dimensions $m \times n \times q $. I also have two transformation matrices, B ($n \times n$) ...
10
votes
7
answers
963
views
How to quickly make a rectangular array of continous 1 and 0 given the start position of 1
I would like to make a rectangular array of 1 and 0 with continuous columns of 1.
We are ...
5
votes
1
answer
212
views
Third party libraries in LibraryLink
I am trying to use third-party libraries in LibraryLink, but the kernel crashes when I call their functions.
In particular, I want to make available some functions of SuiteSparse to manipulate ...
8
votes
1
answer
365
views
Rank of singular, large, sparse matrices
I need to find the rank (and eventually do the Gaussian elimination) of a large, sparse, non-square matrix of integers. There are a few methods in Mathematica to find the rank of a non-square matrix (...
6
votes
2
answers
344
views
Efficient way to compose a SparseArray from system of linear equations [closed]
I have several relations between some variables, e.g. id[1] - id[2] = 0, id[2] = 0. I need to compose a SparseArray that contains the coefficients. In that example,<...
6
votes
1
answer
236
views
Minimizing computational time for a quantum walk problem
Any suggestions as to how to speed up the computational time for this quantum walk problem which is coded using a normalized SparseArray coin operator as follows:
...
2
votes
0
answers
107
views
Method for MinimumBandwidthOrdering [closed]
MinimumBandwidthOrdering[m, Method -> "RCMD"]
What method is 'RCMD' in Mathematica?
Reverse Cuthill-McKee,
Reduced Canonical Matrix Diagram,
Restricted Minimum Column Degree,
other?
5
votes
1
answer
212
views
How could I see the memory use on sparse array and constant array matrices? What is the advantage? [duplicate]
I have a huge matrix defined using constant array function and it allocates so much memory preventing the calculation. Therefore, I would like to change the constant array matrix into sparse matrix ...
3
votes
1
answer
544
views
Efficient memory usage while building a large sparse matrix
I am sure the following problem has been solved already, but I am unable to find any solution... Any help appreciated!
So I am building a pretty huge matrix (or tensor, actually) using
...
2
votes
0
answers
104
views
Dot product of arrays that are members of the same list
Lets say I have a list of n arrays:
n=3;
list = Table[RandomInteger[{-10, 10}, {2, 2}], n];
I would like to calculate the matrix corresponding to:
...
10
votes
1
answer
263
views
Fast Sparse Tensor Addition
How can one do a fast sparse tensor addition?
Below, I have the following code: We first generate 3 random sparse 1000x1000x1000 tensors with 10^6 entries each.
Then, I want to add them. But the usual ...
2
votes
1
answer
198
views
How do I create a banded matrix using values from a given function [closed]
I would like to create a matrix were values of the function P make up the diagonals. I tried using the For loop but did not get it right.
...
4
votes
1
answer
421
views
Speeding Up Sparse Matrix Generalized Eigenvalues
I have a generalized eigenvalue problem
$$
{\mathbf A}\vec v = \lambda {\mathbf B} \vec v
$$
for which I am trying to find the smallest eigenvalue $\lambda$ and the associated eigenvector $\vec v$. ...
2
votes
1
answer
184
views
Reconstruction on large sparse array
I'm struggling with a reconstruction of a large sparse array. What I'm trying to do is to rearrange a 2 dimensional array (respresenting a system matrix for a given system of equations) such that I ...
7
votes
4
answers
1k
views
Implementation of MATLAB's "numgrid" function [closed]
I am looking for an implementation of MATLAB's numgrid function, in particular the "B" mode.
For example, I want to get the matrix corresponding to the ...
3
votes
3
answers
219
views
Insert a dynamic vector into a matrix
If I have the following dynamic vector
Cs[NN_] :=
Table[{Sin[(2*i - 1) τ], Sin[(2*i - 1) τ]}, {i, 1, NN}] //
Flatten
The size of Cs depends on the integer ...
1
vote
1
answer
117
views
Plotting multidimensional tables
I have a tridiagonal matrix created by
...
1
vote
0
answers
103
views
Erratic behavior retrieving large data (several tens of gigabytes) that has been serialized by Mathematica
Hardware: PC with 256GB RAM
OS: Windows 10
Mathematica: Version 13.0.1
One of my projects has led to the creation of a SparseArray whose ByteCount is ~ 35GB in RAM. At the time of creation the ...
2
votes
1
answer
155
views
Define a function with sparsearray
I am trying to define a function using SparseArray, but the entries were defined before. How can I avoid this error?
Code is:
...
1
vote
0
answers
67
views
Why does Sparsearray diagonalization by Krylov technique become slower for very large sizes?
Here is an example sparse matrix, taken from example Hamiltonian, which was a question I asked before in this forum.
...
2
votes
0
answers
51
views
Threshold on triangular SparseArray
I am confused by the behavior of Threshold on sparse UpperTringularize (and LowerTringularize...
3
votes
0
answers
107
views
Fastest Way to make rows and columns zero and corresponding (i,i) element 1 of a large Sparse Matrix
I have a 5552 by 5552 sparse matrix:
...
4
votes
3
answers
786
views
Generating signed permutation matrices
As most people (on here at least) know a permutation matrix is a square binary matrix that has exactly one entry of 1 in each row and each column and 0s elsewhere. For the $n \times n$ case there are $...
10
votes
0
answers
255
views
Defining a SparseArray functions in Mathematica 13
I am defining a sparse array as a function of argument x, i.e.
f[x_] = SparseArray[{1->x}, {3}]
In Mathematica 12 this works perfectly, I can pass arguments and ...
2
votes
1
answer
174
views
How to create a 3D matrix from different blocks?
I would like to generate a $3D$ matrix of dimension $(n1\times n1\times n1)$ compose of $216$ matrix blocks $(n2\times n2\times n2)$. All 216 matrix blocks are subdivided into 4 groups, each one with ...
9
votes
2
answers
254
views
SparseArray Input
How to create a SparseArray without using lists of rule in MMA?
In MMA we can define a SparseArray using lists of rule
...
7
votes
0
answers
79
views
Is there a way to make SparseArray distinguish between background values of different precision that are numerically equal?
To illustrate what I mean, consider the following:
SparseArray[{{1} -> 1, {5} -> 1.}, Automatic, 0] // Normal
{1, 0, 0, 0, 1.}
As you can see, the ...
0
votes
0
answers
57
views
Refer to entry of input matrix in SparseArray
The code
...