# How to solve a linear system A * X = B when B and X are matrices instead as vectors?

1 view (last 30 days)
Hanna Liu on 22 Apr 2021
Commented: Star Strider on 22 Apr 2021
Sovling a linear system A * X = B when X and B are matrices. If I use lsqr，then B is required to be a vector.
I could also iterate for each column of the B matrix, but that is not very computationally efficient.
Matrix A is very big, so I could not save it explicitly. I could only use a function handle to compute A * X.

Stephan on 22 Apr 2021
Edited: Stephan on 22 Apr 2021
linsolve can handle this. From documentation (Input Arguments): "...If B is a matrix, then each column in the matrix represents a different vector for the right-hand side."
Hanna Liu on 22 Apr 2021
Thanks for the answer! My matrix A is very big. If I use linsolve, qr factorization is going to be slow and memory demanding. Is there a way to use an iterative solver similarly as lsqr?

Star Strider on 22 Apr 2021
The lsqr function is primarily used for sparse systems. There are a number of other options for iterative solutions summarised in Iterative Methods for Linear Systems. I am not certain which (if any) of these would be appropriate to your problem.
##### 2 CommentsShowHide 1 older comment
Star Strider on 22 Apr 2021
My pleasure!