Run matlab script
Talk0
1,599pages on
this wiki
this wiki
Recently created tip
We have not yet decided whether to keep this tip as its own page or merge it somewhere else. If you have a suggestion on the tip content, please edit this page or add your comments below (do not use the discussion page).
created July 30, 2012 · complexity basic · version 7.0
I added the following to my vimrc to be able to run a Matlab script by pressing F5 (with Shift-F6 you run Matlab in a terminal):
" The matlab Connection
nnoremap <F5> :call MatlabRun()<CR><CR>
nnoremap <S-F6> :call RunMatlab()<CR><CR>
function! MatlabRun()
execute "w"
execute "!matlab-ctrl.py \"". expand("%:r") . "\""
endfunction
function! RunMatlab()
execute "w"
call system("matlab-launch.sh \"" . expand("%:r") . "\"")
endfunction
I have the following scripts in my $PATH:
matlab-ctrl.py
#!/usr/bin/python2
from subprocess import call
from subprocess import check_output
import sys
wcmd = ["xdotool","search","--name","MatlabT"]
w = check_output(wcmd)
w = w.replace('\n','')
if len(sys.argv) > 1:
s = sys.argv[1]
cmd = ["xdotool","key","--window",w]
for i in range(len(s)):
cmd.append(s[i])
cmd.append("Return")
call(cmd)
matlab-launch.sh
#!/bin/bash
texfile="$1"
terminal -e "/opt/MATLAB/R2011a/bin/matlab -r clc -nosplash -nodesktop" -T MatlabT --hide-menubar &> /dev/null &
# try to return focus to GVIM
xdotool search --class --name "${texfile}.*GVIM" windowactivate &>/dev/null
exit 0