University of Cambridge > Department of Engineering > Information Engineering > Computational and Biological Learning Lab > David Knowles |
A somewhat outdated comparison of Matlab and R (and a variety of other packages) can be found here. Unfortunately the R code istoo outdated to run with the current (2.8.1) version but you can find a more up to date version here.
I've added five statistical functions tests to the benchmark. The Matlab code is here and the R code is here.
Naturally, speed is not necessarily a key consideration. We'd allbe using C if it was after all. Personally, I prefer R's flexibleplotting, rich data structures, package management and free-ness. ButI'll admit it's far from perfect. But I'll admit it's far from perfect,and Matlab does have a lot of great features (like the profiler) andclean syntax.
I. Matrix calculation | R (sec) | Matlab (sec) | R/Matlab |
Creation, transp., deformation of a 1500x1500 matrix | 0.371 | 0.175 | 2.114 |
800x800 normal distributed random matrix 1000 | 0.179 | 0.135 | 1.323 |
Sorting of 2,000,000 random values | 0.421 | 0.354 | 1.189 |
700x700 cross-product matrix | 0.543 | 0.069 | 7.891 |
Linear regression over a 600x600 matrix | 0.416 | 0.063 | 6.654 |
II. Matrix functions | |||
FFT over 800,000 random values | 0.443 | 0.129 | 3.441 |
Eigenvalues of a 320x320 random matrix | 0.378 | 0.452 | 0.835 |
Determinant of a 650x650 random matrix | 0.157 | 0.065 | 2.399 |
Cholesky decomposition of a 900x900 matrix | 0.256 | 0.087 | 2.954 |
Inverse of a 400x400 random matrix | 0.105 | 0.047 | 2.223 |
III. Programmation | |||
750,000 Fibonacci numbers calculation (vector calc) | 0.349 | 0.292 | 1.195 |
Creation of a 2250x2250 Hilbert matrix (matrix calc) | 0.575 | 0.269 | 2.137 |
Grand common divisors of 70,000 pairs (recursion) | 0.470 | 0.075 | 6.230 |
Creation of a 220x220 Toeplitz matrix (loops) | 0.290 | 0.001 | 402.108 |
Escoufier's method on a 37x37 matrix (mixed) | 0.550 | 0.636 | 0.865 |
IV. Statistics | |||
Generating 107 uniform(0,1) random numbers | 1.136 | 0.338 | 3.364 |
Create a permutation of [1..106 ] | 0.078 | 0.257 | 0.304 |
Sample from binomal(100,.5) 105 times | 0.061 | 0.480 | 0.126 |
Sample from N(0,1) 106 times | 0.334 | 0.036 | 9.163 |
Evaluate N(0,1) at 106 locations | 0.558 | 0.077 | 7.240 |
联系客服