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 Kommentar

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

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

the cyclist
the cyclist am 22 Sep. 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 Kommentare

Eric
Eric am 22 Sep. 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.
Try going to the MATLAB package directory (in the /Applications folder).
Eric
Eric am 22 Sep. 2011
/Applications/MATLAB_R2010b.app/bin/matlab -nodesktop seemed to work.
Todd
Todd am 14 Mär. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (4)

David
David am 16 Mär. 2012

1 Stimme

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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Cheng Yang
Cheng Yang am 1 Feb. 2017
I found
matlab -nodisplay
works better for me. -nodesktop still add an icon to the dock

2 Kommentare

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!

Melden Sie sich an, um zu kommentieren.

Carter Rhea
Carter Rhea am 11 Jul. 2015

0 Stimmen

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 Kommentare

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 am 9 Feb. 2019
Bearbeitet: __init__.py am 9 Feb. 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.

Melden Sie sich an, um zu kommentieren.

darryl west
darryl west am 7 Okt. 2016
or just a bit better with...
alias matlab='/Applications/MATLAB_R2016b.app/bin/matlab -nodesktop -nosplash $*'

6 Kommentare

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 am 11 Dez. 2017
Bearbeitet: Walter Roberson am 25 Nov. 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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by