This is an old revision of the document!


Running Matlab on the SEP computer environment

On what machines Matlab should be run: cities and moods. You are not allowed to run it on vostok because its gateway functionality.


What to do if Matlab won't start

There can be three reasons for Matlab not to start:

  1. You are on the wrong machine, like teslas.
  2. vostok has rebooted and the license manager has not been started yet. The steps to restart license server: 1) Log onto vostok 2) cd /opt/matlab2011b/etc/ 3) run ./lmdown 4) run ./lmstart. If it does not return error msg, it indicates the license manager has been started successfully.


Backup machines for Matlab

If “koko” is misbehaving and you need Matlab, of if all five licenses are taken and nobody would close their session, or if you need toolboxes we don't have, you can use the university's machines. Here's how.

Definitions:

  • ”<local>” = your local machine name, without the “stanford.edu” extension.
  • ”<remote>” = any of the following strings: “tree”, “elaine”, “junior”
  • ”<user>” = your Leland Systems username (may be different from the SEP one)

Procedure:

  • On your local machine: “ssh <user>@<remote>”
  • On the remote machine: “matlab -nosplash -nojvm”

The ”-nosplash -nojvm” options will make Matlab start and run faster. It works without them too, if you like the luxury of a GUI. Among the remote machines above, “tree” was the fastest, but maybe I just caught it in a good mood.

The remote machines see your directory on the Leland systems. To transfer files to and from the current SEP system directory to the Leland directory, use sftp from koko or from your local machine:
“sftp <user>@<remote>”

After you started sftp, use “put” to transfer a file from the SEP current directory to the Leland systems home directory: “put <filename>” , and “get” to retrieve a file: “get <filename>” .

You can also use “scp <files_here> <username_there>@<machinename>:<path_to_files_there>”, either from the local machine to the remote one, or the other way around.


SEPlib-Matlab I/O Package

If you need to read/write SEPlib format files from Matlab when running Matlab outside the SEP computing system, download the I/O toolbox and unarchive it with “tar -xvzf toolbox.tar.gz” or copy it from /usr/local/matlab7/toolbox/nick/. Let the Matlab Administrator know of any bugs, he'll appreciate the feedback. Solving them, or extending the capabilities of the toolbox to handle other OSs than Linux are even more appreciated.


The main Matlab web help site

can be found at www.mathworks.com/access/helpdesk/help/helpdesk.shtml. It is much richer than the simple line-of-command help, it has examples, pictures, and tutorials on how to use each of the toolboxes. The search feature is also quite useful, it searches through their pdf documents and through the user-posed questions, too.


Matlab reproducibility at SEP

In the SEP reproducibility denomination system, Matlab figures are considered Conditionally Reproducible because they require a proprietary software package (“matlab”). There are two degrees of reproducibility:

  • Calling “matlab” in batch mode. This can be done from the command line or from a makefile. You need a script (“filename.m”). Just type at the command line, or include in the makefile:
    “matlab<filename.m”
    where “filename.m” can write to disk a figure, a binary, an ascii file, anything you want. This way you can incorporate matlab into your everyday workflows and take advantage of the make system. If you do not want figures to pop up while matlab is running in batch mode, type on the machine on which you are running matlab in batch mode “setenv DISPLAY ' '” before starting it.
  • SEP Report reproducibility requirements. In order for a figure to be considered CR for the SEP report, it must be generated using two files, a ”.ml” file and a ”.m” one. Both have the same name as the figure being generated - if the final target is “figurename.ps”, the files will be called “figurename.m” and “figurename.ml”. “figurename.m” will produce a single figure, but will not write it to disc. The only thing that “figurename.ml” does is call the “figurename.m” script then print to disc the file in EPS format. It will have only two commands:“figurename;
    print -depsc2 junk_ml.ps”Note that the output file must always be called junk_ml.ps. If you do things this way, you do not need to write any rule for the target “figurename” in the Makefile. It is only necessary to specify the figure on the RESULTSCR list in the makefile, and the makerules will take care of the rest.Why is it done like that: I know it looks cumbersome, but this is in the Object Oriented spirit: the actual writing of the figure to disk is separated from the process of creating it, so if one day we decide we need the matlab scripts to produce jpeg or tiff figures we only have to write a simple perl script which will change the ”.ml” files. And having a single main script for each figure, with the same name as the figure helps others understand what's in there. The targets are always named junk_ml.ps in the makefile so that if you change the figurename, you do not have to edit matlab files as well.Troubleshooting the Matlab makerules: If the make rules “do not understand” that they are supposed to produce a matlab target without a rule, you can write a rule for a CR target in your makefile in the following way: “
    ${RESDIR}/figurename.ps: $(MATLABDIR)/figurename.m \
    $(MATLABDIR)/figurename.ml
    _TAB_here_@-cd $(MATLABDIR); matlab < figurename.ml
    _TAB_here_mv $(MATLABDIR)/junk_ml.ps $@
    _TAB_here_echo 'In order to produce this figure you need Matlab' > ${RESDIR}/figurename.warning ”


Accelerating Matlab's 3D graphics

PROBLEM:On the new Matlab 6.0, when running a command such as surf, that produced a 3D display, the thing would take a huge time to display, or would crash, and sometimes the following error would appear:

Xlib: extension “GLX” missing on display “nada.Stanford.EDU:0.0”.
??? Not able to create a render context
” .

SOLUTION: If before running your surf command you run: “set(gcf,'renderer','zbuffer')”, the 3D image will display correctly and very fast, too.


Troubles to create tiff file from matlab to be included in Power Point

From: Biondo

Add the following line line before outputting the tiff file, and make sure to run 'xhost + ashland' on santorin console before creating the figure.

set (gcf,'XDisplay','santorin.stanford.edu:0.0')


How to correctly apply the graphics patches shown above

  1. Open a LOCAL MACHINE window and type: xhost +ashland
  2. Add the following code sequence just before the plot command that was giving you problems:“figure;
    set(gcf,'renderer','zbuffer');
    [s,w] = unix('echo $DISPLAY');
    set(gcf,'XDisplay',w);”You should at least be able to export your figure as a “EPS file”. There may still be problems with other file types. If your script/program contains variables called “s” or “w”, change the respective variable names in the code sequence above.


Dealing with Matlab's memory fragmentation problem

Recently, I gave Matlab a job that required it to go through roughly 400 iterations. The job involved adding some numbers into a big matrix, nothing complex. To my surprise, after 10 hours, it still had not finished running.

I had matlab display a iteration counter. The speed of iteration slowed down fast after the first iterations, and I knew there were no convergence problems, so Matlab was sabotaging itself. I included the coomand ”pack” inside the loop, and the program executed in five minutes what previously had not been able to do in 10 hours!


Exporting professional-quality figures

Matlab Digest describes how to export figures for publications in a reproducible, automatized manner. Links to part 1 and part2 of the article. The functions they provide (“exportfig”, “previewfig”, “applytofig”, “restorefig”) are now installed on koko too. The Technical Support Guide to Printing is a good resource too.


LaTeX in Matlab

Matlab already handles naturally simple LaTeX encodings that allow introducing Greek lettters or modifying the font size and appearance in plots. The function "teximage" (now installed on ashland too) converts any LaTeX string to images and displays them in Matlab figures.


Adding noise to an image

The function “noise.m”, now installed on ashland too, adds Gaussian, uniform, salt and pepper, additive or multiplicative noise to an image.


Running Matlab without graphics

Sometimes you may want to run scripts which contain plotting commands without displaying the plots and without going into the script to comment out the commands. An example: if you're working from home and it's too slow to run graphics over the network. You can play a simple UNIX trick:

” % setenv DISPLAY /dev/null
% matlab “





SEP
Stanford
Exploration Project
GP
Department of
Geophysics
SES
School of
Earth Sciences
Stanford
Stanford
University

Page Maintainer: webmaster@sep.stanford.edu
Copyright © 2009 SEP.

/web/html/data/attic/sep/software/matlab.1334803398.txt.gz · Last modified: 2015/05/26 22:41 (external edit)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0