abl*_*mit 30 linux matlab command-line
基本上我有一个m看起来像的文件
function Z=myfunc()
% Do some calculations
dlmwrite('result.out',Z,',');
end
Run Code Online (Sandbox Code Playgroud)
我只是想从命令行执行它而不进入MATLAB.我试了几个选项(-nodisplay,-nodesktop,-nojvm,-r,等),没有一次成功.我最终进入MATLAB并输入"quit"退出.
解决办法是什么?
小智 25
MATLAB可以运行脚本,但不能运行命令行中的函数.这就是我做的:
档案matlab_batcher.sh:
#!/bin/sh
matlab_exec=matlab
X="${1}(${2})"
echo ${X} > matlab_command_${2}.m
cat matlab_command_${2}.m
${matlab_exec} -nojvm -nodisplay -nosplash < matlab_command_${2}.m
rm matlab_command_${2}.m
Run Code Online (Sandbox Code Playgroud)
通过输入来调用它:
./matlab_batcher.sh myfunction myinput
Run Code Online (Sandbox Code Playgroud)
小智 20
使用:
matlab -nosplash -nodesktop -logfile remoteAutocode.log -r matlabCommand
Run Code Online (Sandbox Code Playgroud)
确保matlabCommand将出口作为最后一行.
Dav*_*ria 12
你可以调用这样的函数:
matlab -r"yourFunction(0)"
小智 7
这是我找到的一个简单的解决方案.
我有一个函数func(var),我想从shell脚本运行并传递var的第一个参数.我把它放在我的shell脚本中:
matlab -nodesktop -nosplash -r "func('$1')"
Run Code Online (Sandbox Code Playgroud)
这对我来说就像一种享受.诀窍是你必须使用双引号和MATLAB的"-r"命令,并使用单引号将bash参数传递给MATLAB.
只需确保MATLAB脚本的最后一行是"退出"或运行
matlab -nodesktop -nosplash -r "func('$1'); exit"
Run Code Online (Sandbox Code Playgroud)