Is there a direct way to use SLEPc from Matlab? I remember that in some old manuals there was some Matlab interface. However, in the last one, I cannot find any reference to this. For me, it would be really useful in the computation of eigenvalues for some large, sparse matrices.

(Matlab's eigs does a pretty good job for matrices up to $12e6\times 12e6$ (that I tested), but with a huge cost in RAM. I'm not sure if parallelization will consume as much or more...)

Are there any tutorials, packages which can make the connection between the two: Matlab and SLEPc?


1 Answer 1


The brief history that I was able to find regarding the SLEPc Matlab interface:

  • 3.2 (October 2011): Matlab interface + examples is introduced. Located at /bin/matlab
  • 3.5.4 (July 2014): the files are moved to /share/slepc/matlab. In the documentation for 3.5.4, section 8.9 is devoted to the Matlab interface.
  • 3.6.3 (June 2015): Matlab interface disappears from /share and "8.9 Matlab Interface" is removed from the documentation.
  • This interface is not present in the current version of SLEPc (3.10 September 2018).

It's worth to note the phrasing in the documentation for this interface of SLEPc suggested its experimental status:

Since version 3.2, slepc includes an interface intended to make most of slepc’s functionality available from Matlab. It is experimental and needs further development, so users planning to use it seriously are recommended to contact the authors. Below are some guidelines for using this interface...

I was not able to find any SLEPc Matlab interface that was working right out-of-the-box with 3.10. You might be able to get some limited functionality yourself by reusing the old interface from 3.5.4 or calling your own C-functions that provide SLEPc wrapper via Matlab's calllib functionality.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.