Can I use MATLAB from the Terminal Command Line in OS X?

I recently installed MATLAB R2010b on a Mac running OS 10.7. I'd like to be able to run it from the command line, ala a Linux system, as I'm not terribly thrilled with the Matlab UI, and I end up SSHing into my computer a fair amount and prefer to stick with the terminal for the most part.
There weren't any instructions for doing so in the Install Guide. Is there a way to set this up? Thanks in advance.

1 comentario

was the matlab command not available for you? It wasn't for me.

Iniciar sesión para comentar.

 Respuesta aceptada

the cyclist
the cyclist el 22 de Sept. de 2011
I believe you should be able type
matlab -nodesktop
at the command prompt. (I got a license error when I did that, but I think it should work.)

10 comentarios

Eric
Eric el 22 de Sept. de 2011
I tried this to no avail. Typing 'matlab -nodesktop' spits out '-bash: matlab: command not found'. Similarly, $which matlab doesn't produce anything. It seems this doesn't get set up at all during installation.
the cyclist
the cyclist el 22 de Sept. de 2011
Try going to the MATLAB package directory (in the /Applications folder).
Eric
Eric el 22 de Sept. de 2011
/Applications/MATLAB_R2010b.app/bin/matlab -nodesktop seemed to work.
Todd
Todd el 14 de Mzo. de 2012
Thank you! This answer worked for me!
It didn't work for me either. It seems bash doesn't recognize matlab as a command. Where are the binaries so that I can update my path?
./matlab -nodesktop Run this after you have reached the appropriate directory as described above.
I tried to do this on remote server also give me error 103
This works, sort of. I added
alias matlab="/Applications/MATLAB_R2020b.app/bin/matlab -nodesktop"
to both .bashrc and .bash_profile and ...
(1) Yes, it launched.
(2) It's a little slow to launch, probably because it still launches some sort of graphical app wrapper, i.e. a graphical splash screen, and an icon in the dock, which in turn creates a MATLAB menu bar along the the top, and the terminal includes a whole bunch of complaints about not finding various fonts, about 10 lines like this
2021-02-05 16:22:08.382 MATLAB_maci64[96303:7667690] CoreText note: Client requested name ".SFNS-Regular", it will get Times-Roman rather than the intended font. All system UI font access should be through proper APIs such as CTFontCreateUIFontForLanguage() or +[NSFont systemFontOfSize:].
It would be nice to have something that launches faster, with no graphical splash screen, icon, menu bar, and lines of font complaints.

Iniciar sesión para comentar.

Más respuestas (4)

David
David el 16 de Mzo. de 2012
Thanks all!
I also just tried updating the path at the terminal before running matlab with:
export PATH=$PATH:/usr/local/MATLAB/R2010b/bin/
Then I typed "matlab" from the terminal and it worked fine. Must something odd going on with my .bashrc or .bash_profile not updating PATH when I ssh into my Linux workstation.

2 comentarios

but how did you find the location of the binaries of MATLAB in the first place?
The binaries are under fullfile(matlabroot, 'bin')

Iniciar sesión para comentar.

I found
matlab -nodisplay
works better for me. -nodesktop still add an icon to the dock

2 comentarios

When I launch with
matlab -nodisplay
plot functions do not show anything.
matlab -nodesktop -nosplash
works better.
For me, -nodisplay is the final trick. It suppresses the icon in the dock, and the font loading errors. Thanks!

Iniciar sesión para comentar.

Carter Rhea
Carter Rhea el 11 de Jul. de 2015
If you have a .cshrc file, then you can just type alias matlab '/Applications/MATLAB_R2015a.app/bin/matlab -nodesktop'
granted you are using MATLAB_R2015a. Though if you are using a different version just change that. Also make sure you are using the -csh shell which you can check with echo $SHELL. it can be changed by typing: -chsh -s /bin/csh
I hope this helps!

6 comentarios

Why do I need to use -csh shell? whats wrong with bash?
Is it necessary to have know where the bin location is? That seems weird to me, shouldn't do this automatically after installing?
Bash is fine, some people just prefer csh. Bash uses a couple of different initialization files, with the most relevant one probably being ~/.bashrc . The syntax for aliases is different for bash,
alias matlab='/Applications/MATLAB_R2015a.app/bin/matlab -nodesktop'
OS-X is usually used as a desktop, so MATLAB on OS-X is usually used by clicking on an icon. (You have to install an additional software product to best use OS-X as a server.) With the /Applications structure, it is not typical for add-on packages that have graphics interfaces to write anything into the directories that are on the PATH by default -- not part of the expected "look and feel" of administering OS-X.
you might need fullfile(matlabroot, 'bin') to find where the bin is...just copying ur answer doesn't work (of course).
__init__.py
__init__.py el 9 de Feb. de 2019
Editada: __init__.py el 9 de Feb. de 2019
I simply type (either bash or cshell)
open <filename>.m
to launch MALTAB if I'd like to run a script at the same time.
The "open" command of Macintosh is equivalent to the effect that you double-click to open a file in Finder - it will launch whatsoever the associated application of the file.
using open would be for graphics use not for terminal use.

Iniciar sesión para comentar.

or just a bit better with...
alias matlab='/Applications/MATLAB_R2016b.app/bin/matlab -nodesktop -nosplash $*'

6 comentarios

I am not sure why you say that would be better? "alias" acts like a substitution at the beginning of a command, so if you were to use the alias I showed without the $* part and were to type
matlab this that the other
the effect would be the same as
/Applications/MATLAB_R2015a.app/bin/matlab -nodesktop this that the other
Specifying $* would be something you would do if you were creating a shell function or shell script, but aliases expand in-line and so do not need $* expansion to bring in anything else typed at the end of the line.
Brando Miranda
Brando Miranda el 11 de Dic. de 2017
Editada: Walter Roberson el 25 de Nov. de 2019
this is really annoying, why isn't it "just there"?
you might also need fullfile(matlabroot, 'bin')
Brando Miranda, on Linux you can create symbolic links during the installation process. See step 8 on this page from the installation documentation. I don't remember off the top of my head if this option is available in the Mac installer, but I suspect it is (or there is a similar option.)
The Mac installer does not offer to create links.
why isn't it "just there"?
Apple discourages apps from modifying system-level initialization files.
Apple is now even dealing with potential issues with kernel drivers by forcing applications to provide their own versions of kernel extensions that live in user space, rather than being shared by several programs in some mid-level authorization space, and the user-level extensions have to be signed by developer certificate.
This turns out to be one of the reasons why the NVIDIA graphics drivers are not being approved by Apple: Apple is forcing the graphics drivers to be per application and signed by the developers -- who, obviously, do not have the interaction with NVIDIA to do that kind of bundling.
Apple is being hard on companies that compete with it; and these days, with it pushing into its own CPUs (not Intel compatible), its own graphics cards and its own GPUs (both custom silicon and not compatible with AMD or NVIDIA), NVIDIA is considered a competitor.

Iniciar sesión para comentar.

Categorías

Más información sobre Introduction to Installation and Licensing en Centro de ayuda y File Exchange.

Productos

Etiquetas

Preguntada:

el 22 de Sept. de 2011

Comentada:

el 21 de Feb. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by