5
$\begingroup$

This web page says that MATLink requires admin rights. First two steps to link Mathematica and MATLAB are:

  1. Add MATLAB's bin\win64 directory (bin\win32 for 32-bit versions) to the operating system's PATH environment variable.

  2. Register the default MATLAB version by running regmatlabserver in MATLAB. On most Windows systems, you will need administrator rights to do this.

I cannot perform either of these steps.

But since MATLink is just a downloadable package and I have installed compatible Mathematica and MATLAB on server I wonder if I still can link them.

$\endgroup$
  • $\begingroup$ Can you test if your MATLAB is already registered as Automation server? If it isn't, can you try the following please: first, start up MATLAB by running matlab.exe /Automation. Then try loading MATLink and running OpenMATLAB[]. Does it work? $\endgroup$ – Szabolcs Jul 23 '16 at 10:07
  • $\begingroup$ If you still want to solve this, can you respond today please? Otherwise I won't be able to look at it for a while. $\endgroup$ – Szabolcs Jul 25 '16 at 8:48
  • $\begingroup$ Sorry about delay. I was able to change PATH variable using cmd but regmatlabserver command failed to work so I have to contact admins. $\endgroup$ – physavage Jul 26 '16 at 11:49
  • $\begingroup$ Have you tried running MATLAB as matlab.exe /Automation? Do it form the command line. Then try to use MATLink without having registered the COM server ... $\endgroup$ – Szabolcs Jul 26 '16 at 12:40
4
$\begingroup$

First, I want to make it very clear that running MATLink does not require administrator privileges. Enabling a certain MATLAB feature that it relies on does require admin rights (on Windows only), but this feature is often already enabled at the time when MATLAB is installed.


What does require administrator rights on Windows only is registering the MATLAB COM Automation server. This needs to be done only once. The MATLAB Automation server needs to be registered for any program based on MATLAB Engine technology to work (such as MATLink). This may or may not have been done during the installation of MATLAB. To verify if it is registered, first install the MATLink package by placing it in $UserBaseDirectory/Applications, then evaluate this from Mathematica:

Needs["MATLink`"]
MATLink`Developer`GetInfo[]

If the Automation server is registered, you should see something like this at the end of the output:

COM server information:
CLSID: {BD5FA15B-396A-431A-9E0A-E249168AAB63}
Program ID: Matlab.Application (Version 9.0)
Command: C:\Program Files\MATLAB\R2016a\bin\win64\MATLAB.exe /MLAutomation

If it is not registered, ask your administrator to do it. Is it possible to register the Automation server without admin rights? I don't know. It could be possible, but I don't know of a way to do it. You can at least try running regmatlabserver and see if it works.


Now what about adding directories to the PATH environment variable? You don't need admin rights to do that. On Windows there are two PATH variables. A user one and a system one. Just add it to the user one. How to do this depends on your version of Windows. There are usually two boxes in the window to set environment variables and the top one shows user variables.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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