# Calculate the covariance of a large matrix

I have to compute the covariance of 50 very large integer matrices (2500x2000 elements). However, according to my estimation this will take around 10 days. Do you have any ideas how to speed things up?

• A 5000x5000 matrix calculates under 10s for me Covariance[RandomReal[1, {5000, 5000}]]; // AbsoluteTiming What type of elements do you have?
– ssch
Commented Nov 14, 2013 at 20:58
• How did you estimate it will takes 10 days per matrix? (btw, 10 days using which type of computer? since the CPU type and amount of RAM should make some difference) Commented Nov 14, 2013 at 21:01
• @Nasser Sorry, I made a mistake; it's 10 days altogether. I compute the covariance of 100 smaller, and scaled everything assuming linearity. Commented Nov 14, 2013 at 21:10
• @phidelio Make sure your matrix contains only machine precision numbers, i.e. use N[matrix] instead of matrix. Commented Nov 14, 2013 at 21:26
• @phidelio Then you have your solution---use N on them. Otherwise Mathematica will attempt to calculate an exact solution, which is very slow and likely not what you need. Commented Nov 14, 2013 at 21:36

Use Covariance@N[matrix] instead of Covariance[matrix].