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

linux远程运行matlab

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
4 y" c8 w' v* u$ t8 |0 |/ q
Matlab on Linux:' n! M* c' W$ p' @! ^( u3 K
: W8 G5 l4 |: D- ^6 Q: m, _
1、不开启图形界面1 x. z  J5 M' ^- f  `' h

, x/ k9 @" p: Z6 amatlab -nodesktop –nosplash
( n3 a3 J8 P* D7 t. d1 H# e+ Q3 `: r% L
或者matlab –nodisplay
5 t  [0 X8 |( u' b9 ^$ Q: A5 C& ^1 @7 m( k" ^' `8 A
或者matlab -nojvm –nosplash; z" ~4 l# Q. x4 D) ^) o

3 P( V2 i; D# H, a" v2、 matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m
, s' C: M( e- v1 D1 k; H3 F: T$ L1 W8 L: h# A7 Z8 `
matlab  -nodesktop -nosplash -r example
9 Y8 G0 @6 O# @/ d
6 ]( s+ S  E# r% S8 @或者matlab  -nojvm -nosplash -r example
0 h- B; \4 Z' Q( H5 ?4 m/ J) m) }
. Y1 |# t! w9 }# W* A. a或者matlab -nodisplay -r example
! g1 B& j3 @; T( O/ I5 H
9 Y3 s$ u7 C- k, V( H- Y( \" }3、可以将如下命令加到~/.bashrc文件" U* _+ P9 t" _" Q1 V

: h2 e3 N. E' y* z. F; Ualias mrun='matlab -nodesktop -nosplash -r'
/ e: n$ a) A' k/ m% n7 @( H: u; ~7 X& \- {: F% @' ?) V: I
这样下次(或者执行source ~/.bashrc)之后就可以直接
+ D/ H4 S- D6 E) G$ ~% q" S3 n0 W8 g% x+ @* q9 ]/ _
mrun example
& l# `0 k' T/ R  D$ h: W* }6 @5 n$ c/ m' o5 V- B0 x+ U
来在命令行运行matlab文件。
+ o# X  m( Z! r" G9 J1 F! N
. u# T) P1 M# D/ x: I, H4、 如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示:' D& X3 B4 ~- ]) G4 ^  f* \
* G- }; M; s+ a" ?* W# f0 n$ r/ g
figure('visible','off');
. X" Q# p9 P% U2 ?! J) C+ s' G
* ^4 x5 m; [* ~) }并使用如下命令将图形输出到文件:/ S3 X9 G, b/ ?
) h' q% }& d8 E8 n
print('-deps','example.eps');- w" Y  w8 V5 t# `
; N& _0 p) i* Y% w
或者
' X9 f- v* x5 j" D2 h9 h. c: R8 u
7 H9 ]" L% N6 d" Ohgsave('example.fig');
# v% i; L1 X4 @8 T. J
) [. o+ T. ^4 d! R; H' Y4 ~$ E0 L5、图形方式:不会1 U9 n$ H+ T; D+ P: x
. p4 q# n3 {- H  ?7 \% {. d7 u8 ]

" J- K8 I1 }, k- H- H, B8 m& r5 o后台运行Matlab:7 l6 q2 {6 I$ }

3 F( Z. J$ F9 k2 @* f1、实现功能:
6 o5 G0 y- m6 K* V; ?/ q, k1.字符环境下运行matlab.  T4 m! r0 t: }6 w
2.字符环境下运行matlab脚本文件,脚本文件无图像的屏幕输出。
: ?$ v- d6 ^! G) {+ j8 `' T3.脚本文件需长时间运行,运行结果输出到文件。matlab的标准重定向到另一个文件。 8 B. ]  K0 D4 X# Q; @9 c, k
4.客户端退出登陆后,matlab保持运行 ,直到脚本程序结束或错误退出时,matlab程序才退出。
, _6 y# j, ?" k6 `* q+ J( ?4 L- T, s& O2 l& h7 \
2、 实现方法:采用nohup命令。
( }) D9 ?4 U# j3 @) K* H6 m. @! s9 i- Z6 D5 B! R- }; r( k* |
3、使用命令:
8 c3 ^4 d" C: \, b/ U! W1 tnohup /usr/matlab/bin/matlab   fill.out & % E. y$ |1 @' Z% W
就可以了,fill.m表示你的文件名. fill.out代表你的输出转到fill.out文件中。比如,matlab中的命令sin(1:10),结果应该输出到command window中的,但是现在转到了fill.out文件中! Z0 L8 Y! G! Z8 X' n  X* e
% Y. L! a5 ]% T! c! Z$ w
例如:我在/home/jsh/yangting/文件夹下有个test2.m文件$ o0 ?! ^7 b) I' v7 {+ P) h' v& T
" F3 U/ |8 o5 @! f- B( d" ?: U2 v
那么,当matlab在/home/jsh/yangting/文件夹下打开时,
2 A0 l- G) e+ N) f  Z2 t/ ^$ s
# w% M3 x- C0 @4 r# ~0 S命令为
# w) E% u7 r, v9 i' U
' W8 i$ F. ~2 q& g- Y+ I5 anohup matlab fill.out &
! p! Q  ]! |' H2 \# u  W+ w" Q
/ |/ a# \( u0 S# l注意:在nohup运行成功后,不能直接点击关闭按钮,而应该按下任意键,恢复到入状态,然后按exit命令退出。
, d  ^0 i6 l/ o# I* G3 Y* w' X4 F8 }1 F
使用命令:
* o& u3 I9 P, vnohup matlab -nojvm -nodisplay -nosplash -nodesktop < matlabscript.m 1>running.log 2>running.err & $ b3 s) k- }; @7 {+ C, r
6 ~8 ]; j4 B3 D; X/ f$ O0 t! Y
nohup matlab -nojvm -nodisplay -nosplash < matlabscript.m 1>running.log 2>running.err & ( @6 q& I7 J' ^( Y  b
或:& ]7 q: t. q/ ?! D( h
nohup matlab -nojvm -nodisplay < matlabscript.m 1>running.log 2>running.err & - f; ~/ H3 M: H2 N3 b( p

1 e) C3 Z3 F( q$ W" S其中:
* ]! W8 _: T8 [6 Gmatlabscript.m是将要运行的脚本文件,存在于服务器上;
5 r# z* [+ p! l4 }2 i& y. W1 f* srunning.log是matlab标准屏幕输出的重定向文件,将建立于服务器上;
& @0 v0 c" e. H0 Q2 {running.err是matlab运行时的错误重定向文件,将建立于服务器上。3 U7 b: x- a* m
' R) u4 v, J/ ^
4、另外补充:
8 R8 C/ _% R3 M9 g(1)如果你想中断正在运行的matlab请使用; @1 j* h7 O3 q! l6 j$ j
              kill -9 进程号
$ J! d2 M7 z* T( b         或 fg %n ; Ctrl+C : m) b6 d% n* w+ k- i, B- B0 l
(2)如果你想在字符环境的matlab中运行脚本,请使用
! M3 J' P# Z# z' [              run 脚本文件名(不含.m扩展名)
5 C* [; W: L+ Y$ x7 v0 a5 d' B: d(3)如果你想用ssh运行有X界面的matlab,登陆时请使用
( l7 A. k& b) _, h             ssh 主机名 -l 用户名 -X
) f6 a, q6 m* @( x4 V
! {0 _: Y  G7 m 9 i  U5 e1 h+ ^

; o4 z8 d9 u! e; T; J=========================================================) q7 P& j: k. f# W- {7 Q2 l( C
/ ]6 ^# R/ i) ]+ L% F

, ]- _' T9 e2 u; F% a# B" O: X" B让程序在前台后台之间切换。 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务。
5 ~$ E' `1 J2 s* K  n' U4 I/ R假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示:
9 P2 T7 c' j: n5 g4 d5 Q/ D& V; _, P[1]+ Stopped /root/bin/rsync.sh+ P; Y' N1 C3 x* t: L9 Y( S7 V0 h9 f
然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)
% N. A8 ~7 C! a, H#bg 17 t9 d$ z, Q3 X5 M& g! ~
[1]+ /root/bin/rsync.sh &
& |5 ~* h- e$ [' c; s* h
3 ?$ I; w" n$ p, P- i( L8 U2 [
用 jobs 命令查看正在运行的任务:0 B4 {4 ?% w- F# E
#jobs) ]0 C) m! K% H6 I: h
[1]+ Running /root/bin/rsync.sh &
8 e7 u& l- P' y; {; |% v
& s2 U9 T5 `! S) f& [/ p
4 u7 w4 k8 t8 R# _如果想把它调回到前台运行,可以用2 T7 W2 y) T1 {% O
#fg 1
8 O$ F2 U4 Y, \! }  ~/root/bin/rsync.sh: q% H8 D  t# t! `+ W5 F/ A- a+ Z8 F
这样,你在控制台上就只能等待这个任务完成了。
# v% Y3 D) \8 c5 ?' z# O! A, |' N
! }6 f4 u* Q4 {+ x' e( c$ J# {6 T1 ~( o. C9 g1 P

" }+ Z% Z8 ?+ O6 M( E
# ?5 r5 \) d3 B0 X5 R: X  Q! T7 x' @$ k3 O) m1 L( {5 v
[Ctrl-z]是当前任务转到后台中断。
1 |! A. ~2 V7 r9 _5 v% f6 U6 q$ g
9 j/ k7 [4 l- c; r9 C8 J, {1 t- Efg 1可以把1的任务转回来当前终端。  F1 A1 e, t" p9 W
3 g( o; s, p" H# F! r
bg 1 $ ]& Z. V2 S' P
; [, P* y1 d$ o( \' `/ k
可以把1的任务转回到后台终端。  : P3 B8 k5 V+ o! |+ n/ S) b

; b# u! m, T- p6 q$ q0 Q, wjobs -l 可以查看当前进行的任务。: L7 s- ~: h$ U* Y4 s' B
! Y* g1 C# O- T3 m4 K/ v

1 Q- x3 K+ O) O  L5 S2 w) J/ I
2 q9 }2 Q4 ^5 I; B% _) |当一个任务bg时,当前的treminal关闭就会关闭,可以用
7 }! H( P! ~$ x
* F4 r- h; L3 g2 K. }( [2 k, ?8 @nohup来标识可以继续运行(nohup->no hang up不挂断)
$ g! R5 K: S( G' u2 e; {' b$ w' |1 l1 c* j% r& l4 `7 v
命令是
! L6 D) h5 l7 R, A& G
: K  Q6 S% ~3 Q2 \" [nohup command &
  u' X9 O4 m* ?3 V! s
2 v7 W- w; U1 D0 h 2 O; C2 f) _1 F+ m9 X
/ n* |  ^8 `6 a2 f
通过ps -aux命令 会发现command的父进程变成了1,在关闭窗口之后

该用户从未签到

3#
发表于 2020-4-14 18:29 | 只看该作者
linux远程运行matlab

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:43 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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