Here s an idea, but I haven t tested it out. If your symmetric matrix is positive definite, do a Cholesky decomposition of the symmetric matrix, A, giving you A = U*U . If you store U as a sparse matrix using MATLAB s builtin sparse matrix, you have everything you need, and you ve used roughly half the memory. Since its using MATLAB s sparse matrix type, you have operate on it using standard MATLAB functions, as long as you remember that A = U*U
For example, to compute A*x = b, use x = U U. Unlike the other proposed solutions, MATLAB will never be actually using a full matrix internally, and will even use accelerated solvers that will take advantage of the fact that you re only solving with triangular. The cost is that to solve a single system, you ve actually running the backslash operator twice (see above). However, that s the price you pay for never instantiating the full matrix.