找回密码
 注册
关于网站域名变更的通知
查看: 447|回复: 2
打印 上一主题 下一主题

linux远程运行matlab

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-4-13 10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x

; Z/ N  k- p+ j- m/ A% WMatlab on Linux:
( F( s4 o2 ^. \) o' N7 K( ~9 [% l+ W: ?' T
1、不开启图形界面
. ~: i& O9 w5 ?0 G3 v. l( w; s: s0 c+ S, w
matlab -nodesktop –nosplash
. ]( [* E: j% `/ T" ^
1 C5 q- r2 i+ u或者matlab –nodisplay' \$ W5 ]7 U% U3 D

4 I* I, ]1 z6 n4 h' `) ~; O或者matlab -nojvm –nosplash
$ _/ ?& Z# X0 @3 A2 V; A# }
5 E7 K6 _) T3 j8 |2、 matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m; K! R( p& ]) s% ?
& a8 F; e9 S# ~5 m
matlab  -nodesktop -nosplash -r example9 L& g+ K" X2 h( e$ n/ p" \
) `. _3 P; t, |
或者matlab  -nojvm -nosplash -r example
: Q+ A5 ~! P% [3 C, X/ h! [* k
  ]& a& H& a! g( p或者matlab -nodisplay -r example
( i3 a/ {# D" |3 m5 o& ?& l8 a
1 s- ^, C3 x7 g3 J: A3、可以将如下命令加到~/.bashrc文件
, N2 ^2 b: H" g" v  I9 a4 R- A5 D. e" q' h: G) A( Z  _" b
alias mrun='matlab -nodesktop -nosplash -r'
9 t. Y3 H+ j% H8 `! R" X7 I* Q! `. _7 P- z" g, V) Z3 _8 f$ |
这样下次(或者执行source ~/.bashrc)之后就可以直接0 V5 Q1 b, e! @( w
5 D, w# f# J) |* ?* z* I
mrun example* B# q. e( F% h0 y
3 ^9 q& f: j7 \. j- z  @3 L1 P
来在命令行运行matlab文件。
$ y  G8 j  k4 m9 o6 E! ?+ w: _2 f$ R# j: |) x
4、 如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示:% R; a# V; I4 B/ b, @

7 i) j/ i0 V1 V+ W0 g/ Dfigure('visible','off');  c7 E% i+ M7 F# ]) M
- V" ]  Y7 Q6 ^# g2 J" ^5 ~
并使用如下命令将图形输出到文件:0 ?& u! K+ B$ r6 H$ M9 K5 J' ?2 c& x

. z# Y0 j9 H  N% a8 A$ f& Nprint('-deps','example.eps');
9 O' ?; {% k& Y. n1 `" e
- V  {# T4 B% [% @  c; R: P  J或者3 W+ j2 x: G4 X: c- o, v; t

0 w3 s& f; B! O( r1 ]hgsave('example.fig');/ s# ], D3 {! I4 [2 W9 G
* s- G" b4 d/ r, i  ~( C3 G/ b
5、图形方式:不会
9 p. @& @2 w3 X* `, ]0 h, P, F8 }* _0 C4 P8 v  P/ N: m( b" h1 ]/ G

& `; ]" t3 L$ T+ b# w  Z后台运行Matlab:
. B7 P! N% q& g
$ y) s0 q" V/ ]% F1、实现功能:
7 f: w; }2 a: T8 u* e1.字符环境下运行matlab.
% h+ S# O, S4 J2.字符环境下运行matlab脚本文件,脚本文件无图像的屏幕输出。# o5 F# [5 \# w8 Q0 y% N
3.脚本文件需长时间运行,运行结果输出到文件。matlab的标准重定向到另一个文件。 # ]0 M# z5 k$ m2 Y' K
4.客户端退出登陆后,matlab保持运行 ,直到脚本程序结束或错误退出时,matlab程序才退出。2 Z% Z& H1 t1 {* V
* Y. f0 r0 P. A9 }) i. F
2、 实现方法:采用nohup命令。1 _  Z0 A4 z: @" s
7 ?) I, w3 S6 |4 Y7 T% f
3、使用命令:
" X  G, i! K. c# i# f0 i4 o. G! Gnohup /usr/matlab/bin/matlab   fill.out & # I. H: B- a! r. h' p9 [
就可以了,fill.m表示你的文件名. fill.out代表你的输出转到fill.out文件中。比如,matlab中的命令sin(1:10),结果应该输出到command window中的,但是现在转到了fill.out文件中5 s& w, [8 D9 X5 T
- w; J& O- N1 Z% {% E& F
例如:我在/home/jsh/yangting/文件夹下有个test2.m文件
" o# L& [& U) K" @' _: T; [! J# P$ B. ?7 E. {) S( W! e) n
那么,当matlab在/home/jsh/yangting/文件夹下打开时,
' [9 @! f9 o" [/ X' O6 ?  v! V1 m. ~' a4 G& Q7 m1 r
命令为3 C9 z2 C( k) @" _8 \) J1 r
% ~4 o7 u+ g* z' w; D
nohup matlab fill.out &- z+ _7 L2 c1 h/ E2 h& E; l- t7 h

( c4 x" t/ v% y, |, Z注意:在nohup运行成功后,不能直接点击关闭按钮,而应该按下任意键,恢复到入状态,然后按exit命令退出。
) y0 ]0 g$ [5 p$ c' g, G: N# @" E" c  y% q. q3 p5 ]
使用命令:8 Q* E6 x4 O, b
nohup matlab -nojvm -nodisplay -nosplash -nodesktop < matlabscript.m 1>running.log 2>running.err &
# T( x5 Y' T2 K& F0 e8 x" @
( X; x% b9 k; I9 E! U2 s$ m( ^nohup matlab -nojvm -nodisplay -nosplash < matlabscript.m 1>running.log 2>running.err &
! T- {& j& ?- N5 m或:- m4 Z" P" |3 A' g
nohup matlab -nojvm -nodisplay < matlabscript.m 1>running.log 2>running.err & 3 b! y5 X+ m/ O) v9 Z$ y
2 S8 \4 g3 q$ `5 p3 o4 u
其中:1 ]' h2 \: M: i- Q; R4 }
matlabscript.m是将要运行的脚本文件,存在于服务器上;7 m" _. k6 e5 j) s) c% k
running.log是matlab标准屏幕输出的重定向文件,将建立于服务器上;
5 A' G) a% k4 V) Y- r, `4 O; r* {, |running.err是matlab运行时的错误重定向文件,将建立于服务器上。
! \4 _2 ]4 z9 ~( D% O
' x6 s, ~6 X% n$ p. d0 D4、另外补充:
' k4 q8 c( `6 w" l5 a' e. x5 [(1)如果你想中断正在运行的matlab请使用5 l6 }; Z& v7 j9 b
              kill -9 进程号 2 S, x6 s+ s1 W5 I" ~' M
         或 fg %n ; Ctrl+C 0 K% i  W* I! ^; {
(2)如果你想在字符环境的matlab中运行脚本,请使用/ }% C5 D! w$ V" `. q
              run 脚本文件名(不含.m扩展名) . R) x4 J( R0 [# V
(3)如果你想用ssh运行有X界面的matlab,登陆时请使用
9 D- e  y! z$ a2 g! w- v, J1 }& g             ssh 主机名 -l 用户名 -X
& {0 |0 F, z# [( R
2 `3 K) J  t3 w2 J" o0 A3 n
" ]/ ~; p! [* \- K" v  X6 F, l
: s, T- T4 X, W- S8 Y5 z=========================================================0 y  f2 K. h! L& @) h9 V% L
! j9 f+ @8 ^' d0 P0 v! @
  L8 e' Y3 k' e$ F9 v# L1 X3 P! x
让程序在前台后台之间切换。 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务。' p/ @* O# ^4 p, w/ n3 A
假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示:# k# s! b6 C' P) k. n
[1]+ Stopped /root/bin/rsync.sh
& {" o7 h4 G, S1 ^" a然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)
" d$ B5 h" m+ g8 B# F#bg 1. j, M! Y- D9 g" X6 B
[1]+ /root/bin/rsync.sh &* v1 Z! W+ M& o/ y6 t5 N1 f6 W! {

6 o- s' g6 z9 v4 J0 c. q: _
5 q" V3 l+ b8 Q0 y% f用 jobs 命令查看正在运行的任务:
8 H; y" P. l0 Q# f#jobs
! T5 c6 x  }9 K! K% [/ A! j$ F- Q[1]+ Running /root/bin/rsync.sh &
$ n1 X7 n9 ~7 X' F! h. k
! P- b: i0 C- G. ]& _  c/ P  S1 ?  o3 H/ ]" [
如果想把它调回到前台运行,可以用; r- R# z% G" b7 v4 O6 w
#fg 1/ e3 F# b' [  e" x
/root/bin/rsync.sh' ~; g! @% D8 j5 S
这样,你在控制台上就只能等待这个任务完成了。
: p" e: S, t+ m# ~: g- c
- _6 ]4 m1 ^7 c0 J; x0 P* b4 |  F. z0 j  A0 z: E& P- k+ c
0 r# _( F8 O$ ?$ Y; W& n
0 L* }# f8 o7 b9 _
  ]! ^6 L8 z6 |* f" c
[Ctrl-z]是当前任务转到后台中断。
% R, y* y! ^( w6 S! n
" i% f! v, [0 Q" d9 Kfg 1可以把1的任务转回来当前终端。! o4 G5 n3 Q, J/ u6 w$ l
, h6 X$ Q" i2 S
bg 1 1 b( A" n1 r' ]' z1 F% }6 Y+ h$ D

6 z* H% E/ O* V/ C5 N! _可以把1的任务转回到后台终端。  ) B# ?' s6 L/ q( Z2 k

$ P3 P- a, B; C5 n0 M+ qjobs -l 可以查看当前进行的任务。
+ N  o$ x/ a6 B6 d& F" T, o% i" P5 b; w

% A3 ^" n) R( w1 k+ @" _% O7 M. Y4 U- W# H& y
当一个任务bg时,当前的treminal关闭就会关闭,可以用$ A: ^0 V+ h" Y7 n- [

4 v7 ~8 S/ e% ?, w- {0 ^nohup来标识可以继续运行(nohup->no hang up不挂断)
6 S3 I. ?) O3 M9 R; f6 a+ G
8 |! P4 I% O8 y( c$ q0 {命令是3 y: y/ u: H3 c8 ?6 }

/ g" D$ `0 j; z# \: nnohup command &
4 p" w5 n  L  p" U7 ?6 B7 z! |# {/ l' q' s0 _3 {: h
$ d3 B: g0 K, B8 S, r/ H( y5 G+ L

% ^8 X# [+ p* T; N通过ps -aux命令 会发现command的父进程变成了1,在关闭窗口之后

该用户从未签到

2#
发表于 2020-4-13 20:10 | 只看该作者
linux远程运行matlab

该用户从未签到

3#
发表于 2020-4-14 18:29 | 只看该作者
linux远程运行matlab
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-16 06:54 , Processed in 0.125000 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表