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

linux远程运行matlab

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x

2 ^9 h* O1 t( [! p1 GMatlab on Linux:7 b) i% s- G* t; ]% H! Z* g2 E% W- E
/ }/ p9 s' \6 g: u
1、不开启图形界面
$ E: |1 T& ]/ x4 W2 l7 r; {; h5 U: K' O& k6 _
matlab -nodesktop –nosplash
6 w; }8 w5 p5 D$ u7 z4 H
, [& O0 l9 E+ f( W7 \* M% `或者matlab –nodisplay
! P' u  O3 c( |, |+ J/ d
6 O* d- l  S. a% h或者matlab -nojvm –nosplash6 z( H0 y5 k8 s2 n1 T

4 N6 K8 |1 h) q3 P: o# D1 p6 J) d. s  O2、 matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m8 T& {9 d, I8 V7 D% x
9 D+ o6 Q! \( G, O6 o. g0 p4 ~8 f: E
matlab  -nodesktop -nosplash -r example+ H' V; e1 h1 D) O: z& o9 {
1 E8 d( L. q. v2 o
或者matlab  -nojvm -nosplash -r example* d$ g& c1 N( V: U1 V3 Y
* C0 _  p" v  p+ n7 O
或者matlab -nodisplay -r example) E9 d7 O. {) G0 q+ T2 T/ L  _' i
8 g; [: o$ D" e9 c+ M
3、可以将如下命令加到~/.bashrc文件
( Z: U1 f# O6 _; [6 G3 }9 b, }3 \* b+ V# F! s, H/ C- @  y
alias mrun='matlab -nodesktop -nosplash -r'
) N1 i5 ]) \: h  f6 y8 O) ]) G  O9 P
这样下次(或者执行source ~/.bashrc)之后就可以直接$ G8 D, |+ T1 n0 h$ s, h# ]4 G/ ~- N

& E5 S, k; @! o, Hmrun example+ L( O7 E/ a. Q# z6 U
; q' c" l  A, M$ R1 r. ^  A
来在命令行运行matlab文件。  J$ p1 x1 ?3 [; b9 I' `; F
7 ^2 K, S6 `+ I6 \
4、 如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示:
) z/ d8 Y- r: |4 [% l4 }% o
+ Z6 T5 T5 k& X  j  u! Lfigure('visible','off');
/ O5 `+ C" T" \' j+ b: F! j2 D2 {
并使用如下命令将图形输出到文件:; D; W( o$ t3 l# T: A/ ~

3 D) u, Z/ H# c) E8 b) P3 T% dprint('-deps','example.eps');2 l3 r9 H% b" \

5 F' M8 ~$ d. l7 ^( J) e或者
4 P( v' n* ?: H- v/ ?  q
  v: F& r3 f9 L  u( X# m' V. Yhgsave('example.fig');4 \2 Y/ {1 _" M( X; V# C

5 D3 q# h0 w$ h" o! V  B8 i5、图形方式:不会
* G1 i6 y0 X( w1 |( d
& j6 V  y7 M7 t0 q6 T
: t# E: `3 x+ l7 K# |后台运行Matlab:8 R+ Y/ [! b" i9 ~5 O% \& V
" h: h7 h6 |% J4 N
1、实现功能:
- `) ~( d6 k0 D: ]; w+ }1 R3 Q1.字符环境下运行matlab.  a6 \+ B1 Q; D$ S& t) P2 X
2.字符环境下运行matlab脚本文件,脚本文件无图像的屏幕输出。
/ l4 n& B8 Q- p9 n, n* B% y9 c3.脚本文件需长时间运行,运行结果输出到文件。matlab的标准重定向到另一个文件。
0 J" v, b" b" U4.客户端退出登陆后,matlab保持运行 ,直到脚本程序结束或错误退出时,matlab程序才退出。
% F" k. ~. c7 m. k! E, P2 p/ L
5 S& g4 j# E$ i& T7 D7 ?2、 实现方法:采用nohup命令。
5 j4 T: I( i5 Y  o) R3 b$ j' f# n# [5 w4 Q$ p& Z
3、使用命令:
% R9 P' b) a* a2 n' xnohup /usr/matlab/bin/matlab   fill.out & 8 |2 w; O" M& L7 l! I+ s3 k" p! |* m
就可以了,fill.m表示你的文件名. fill.out代表你的输出转到fill.out文件中。比如,matlab中的命令sin(1:10),结果应该输出到command window中的,但是现在转到了fill.out文件中& F, @9 ^* x, j4 _3 |
) E' ^9 s% V) e. e7 z% H2 u
例如:我在/home/jsh/yangting/文件夹下有个test2.m文件
" Q2 V$ @4 j) m* E- a3 D
# y' j' l, O7 [/ i9 J那么,当matlab在/home/jsh/yangting/文件夹下打开时,
! }4 ?& E' `, e; T* Z: b: B- v% h
1 G2 a9 G- f& g9 b( L" ?  @$ x命令为, J/ K8 j9 j: e* M& X8 b

9 f! o! ]$ H. M9 X  Xnohup matlab fill.out &" ~0 O/ u/ |- _: R# \" p( T$ c0 B
8 f, i' y' i3 ~, f
注意:在nohup运行成功后,不能直接点击关闭按钮,而应该按下任意键,恢复到入状态,然后按exit命令退出。! E8 `' _+ |: M. n

+ p( i' X7 ~4 Q7 ]! x使用命令:" Q  n2 Y4 H& `/ S3 B8 m
nohup matlab -nojvm -nodisplay -nosplash -nodesktop < matlabscript.m 1>running.log 2>running.err & 9 {7 {6 R: X: A6 c9 N. f1 w
6 M) I# N. l# k( f8 Z
nohup matlab -nojvm -nodisplay -nosplash < matlabscript.m 1>running.log 2>running.err & ! L( P- ^' V4 D" a
或:9 j: v/ h+ f: i* M
nohup matlab -nojvm -nodisplay < matlabscript.m 1>running.log 2>running.err &
! U# W& |& g6 q: ?& q$ a( t3 G
其中:
: w$ H8 w$ l$ x' K9 C5 \" imatlabscript.m是将要运行的脚本文件,存在于服务器上;
0 b9 p7 m* U1 `; `running.log是matlab标准屏幕输出的重定向文件,将建立于服务器上;
4 `/ c( P4 O# s- r' H, rrunning.err是matlab运行时的错误重定向文件,将建立于服务器上。
' |# p2 F, B* {9 n! s/ S
+ n8 [4 [4 }0 ]& Q7 M" I2 H4、另外补充:
6 v8 e8 x/ O' |  P& g: k+ D(1)如果你想中断正在运行的matlab请使用
% ?5 F' J5 p# j$ ]$ V4 X              kill -9 进程号
/ j( R0 O# Y. A- o- e         或 fg %n ; Ctrl+C
0 Q; h. ^2 P0 Y& x7 k4 T; D, u' r(2)如果你想在字符环境的matlab中运行脚本,请使用
' A6 I  L8 G2 Z! A5 f$ l& y              run 脚本文件名(不含.m扩展名) 9 ^% }- Q' p+ B0 E6 @
(3)如果你想用ssh运行有X界面的matlab,登陆时请使用
. ]2 ?/ f, _# k$ q: G: Y             ssh 主机名 -l 用户名 -X9 a9 L! L+ K7 w8 O- m
# B" N* u+ A- i4 h& N' r
/ d' h, Z0 [/ H. x# U2 N

  V! N6 C% @2 p6 C+ s& [# U* v=========================================================
* w/ s* Q9 f2 o: J: e1 Q; q8 C" U' Z, h; f, l

  d/ J) f4 W3 o& l让程序在前台后台之间切换。 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务。
' @& P$ I. L7 Z5 H5 W假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示:0 A; q4 z- H" b( ]* P
[1]+ Stopped /root/bin/rsync.sh
' j  U. B! g9 p) M  I6 D" q2 L然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)
4 ]7 W7 d4 n8 d" ^, V" v# }#bg 1
/ v2 ]) s1 ~! v( `6 z* v5 u7 \3 h, h5 F[1]+ /root/bin/rsync.sh &6 u% b% R0 \2 @' I( {. F* W5 u

/ e/ ~$ {) }: R$ x2 Z" V, s3 h( `$ M' ~! `" R, {
用 jobs 命令查看正在运行的任务:% n2 `+ M$ c- j# A, L% @
#jobs. ^- T! A/ I) N
[1]+ Running /root/bin/rsync.sh &( c' A7 D+ h: T& S! E' S

; [  M( @. Q- |3 T) A% w) [
, Z$ {; z: l1 |9 s7 g8 _如果想把它调回到前台运行,可以用$ u; O2 M/ F2 u
#fg 1
, |& s/ a. l2 W& t* F' m/root/bin/rsync.sh$ r9 Y. w6 l) a) K
这样,你在控制台上就只能等待这个任务完成了。
" F: X0 U  `; s1 Z3 e; H: k4 K2 N2 I1 Z! U0 E
' d8 Y/ I- t; r7 E

% r# Z! c. O5 _1 J) I: d' J! n , N  \, P0 o* X& _% x( F9 D  t9 @

" Y2 s% ]  J5 d" g) r! a& ]3 @[Ctrl-z]是当前任务转到后台中断。) j! q! l3 t2 i0 W1 A9 A% T1 L

* i! I" Y- e% K! I/ S. J1 Ffg 1可以把1的任务转回来当前终端。
' t$ M8 Q; Z6 a- X
8 H' `5 [/ s$ e# j- nbg 1
% d& Y. }6 y4 a) ^% }3 H1 P5 C* j. m
% {2 r: V. S5 r' }4 p可以把1的任务转回到后台终端。  
- h3 F& w; x) B. m) k" j2 r0 ?
, N. C& G  N9 w* Pjobs -l 可以查看当前进行的任务。: g5 d! N8 q; u

" ?! G9 J% o+ `# r4 n
  ~# Y- O1 A. a/ T7 J3 f0 ~" \$ \# Y3 U1 V$ N; y- @/ ^" h! ^
当一个任务bg时,当前的treminal关闭就会关闭,可以用
: {2 n; s- t* l% v8 {6 z# H0 M+ f2 J1 c3 ?: U! Y
nohup来标识可以继续运行(nohup->no hang up不挂断) 6 C% u8 J. w: p  B; @: ]
' {' l+ n/ w: _; u$ c
命令是
# \: I- U* _+ M8 F8 J: |7 R4 H+ ^0 q& {8 O+ m
nohup command &
) p; n0 Q# I8 _1 d
# _% d# v& F3 |2 g2 ?& s % E$ I8 T9 b# }
2 A% f  o- p, V  I" c) \
通过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-11-24 01:47 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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