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

linux远程运行matlab

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
/ P- s& g- A, g# O5 k$ ~# I
Matlab on Linux:/ ?& K( {% w2 m) q- p& m6 M
$ j& e( }$ R2 a
1、不开启图形界面' p' c. z! C: h0 q

2 R* u9 @; u1 ^3 N+ `0 Bmatlab -nodesktop –nosplash
( z* B' L$ J1 }3 K% Y+ O& F! v, B4 N
或者matlab –nodisplay
& h0 Y" w( C; g# g$ [8 I* u: q* E, D# y4 P
或者matlab -nojvm –nosplash( n) b3 G  K. P4 s

- Z7 [) Z+ }: y2、 matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m8 @7 T1 @- ^5 f' v( U) X% G3 g

% g# I7 w8 Z8 C0 h$ A7 J% ymatlab  -nodesktop -nosplash -r example& Q; x3 M$ f' s5 ^' ?

9 B# R6 @" m0 U. Y  F, T/ x& c或者matlab  -nojvm -nosplash -r example
1 x( @% y: F, t$ C1 P/ Q9 y+ g9 R- _
或者matlab -nodisplay -r example( X  ?  s3 B' M" H& [9 V
; I* Z8 e+ L2 ?$ t5 u
3、可以将如下命令加到~/.bashrc文件, o. |) c* D# }7 Y; h! J2 b

3 p) y! Y8 Y1 H4 }4 }alias mrun='matlab -nodesktop -nosplash -r'
8 @2 n2 Z" G% }
: I7 y% ^3 a* k( l这样下次(或者执行source ~/.bashrc)之后就可以直接
/ v' c. j/ k0 M* ?
% H8 q; H8 U: T( [5 w* J0 |, dmrun example7 N: B* l+ p# }/ C! [7 a. {
- [8 O, O1 R  x. ]. u+ ?
来在命令行运行matlab文件。: y7 K$ l; F( v$ Q* V. u2 S
! t9 u; r( }0 b8 y
4、 如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示:
  e! {& |7 C3 h
4 U4 p/ o9 `* G, @! G! w- l2 |figure('visible','off');
* w, p* _" i  e+ f, A7 o% p+ A0 Q9 x  B/ ^, V5 |
并使用如下命令将图形输出到文件:; h  Z; o/ L: g3 W6 g
. U; s/ _2 L! C) P
print('-deps','example.eps');
! D; F2 `8 N5 C( w. g
: l3 n2 i; s! [0 v或者3 W' N% g0 [5 y! F

6 U3 E1 u4 k( ~hgsave('example.fig');4 F$ l, g0 l. \7 A0 H* W4 e0 h3 |
9 |; R* I3 [* ]% i6 @8 _3 _
5、图形方式:不会
) s3 v) b: m3 l, V
* d1 A6 U2 R! D  a! z& ^$ R' h  X! m" E* W0 F( z: i  i% ~* ^7 t
后台运行Matlab:
- d+ b3 Y, S6 A2 G8 V! Z
8 i. K/ E& s/ S3 M/ W1、实现功能:2 i. J# b* {8 E1 @% H
1.字符环境下运行matlab., k. B* T* o% Z2 i; |
2.字符环境下运行matlab脚本文件,脚本文件无图像的屏幕输出。
0 g# l( p: P; E" |/ A3.脚本文件需长时间运行,运行结果输出到文件。matlab的标准重定向到另一个文件。
& G0 O' P8 |% ~; w$ L. I4.客户端退出登陆后,matlab保持运行 ,直到脚本程序结束或错误退出时,matlab程序才退出。# i5 b; Z  e( U( S& }% w

: s/ x  X( o5 i% l7 _5 u2、 实现方法:采用nohup命令。# k! h+ o! ?6 v

+ c6 P  o' j! N0 ~( I* U3、使用命令:
, ?; W$ Q6 ~4 l7 U7 q% d  bnohup /usr/matlab/bin/matlab   fill.out &
+ c. C6 R+ i2 u" e就可以了,fill.m表示你的文件名. fill.out代表你的输出转到fill.out文件中。比如,matlab中的命令sin(1:10),结果应该输出到command window中的,但是现在转到了fill.out文件中
0 s& _2 p4 t# K5 Q" ^
- j$ U- \$ `" l' H" B) N: f例如:我在/home/jsh/yangting/文件夹下有个test2.m文件
( ?3 M; Q* z4 D3 n
6 J9 r5 p' Y  e7 R2 q那么,当matlab在/home/jsh/yangting/文件夹下打开时,
! o& A- u/ x& ?+ E# D3 n0 z. u& ]2 v) q: Z# d
命令为5 I. }$ ^  b! M  |$ M- x
. [  K& A! N8 u/ U3 Y3 Y
nohup matlab fill.out &
7 w& C$ j8 x9 Z& b; ^+ {2 Y6 ^, T* [
8 V& A7 T2 G- n+ m注意:在nohup运行成功后,不能直接点击关闭按钮,而应该按下任意键,恢复到入状态,然后按exit命令退出。
4 n' P) _* C; ?" C6 Y- T# R# T
6 p3 [4 l; F7 Y5 P1 N% }使用命令:# _3 P& {, z$ V
nohup matlab -nojvm -nodisplay -nosplash -nodesktop < matlabscript.m 1>running.log 2>running.err & : \8 {& k0 u2 N2 X/ t4 W

1 T$ ^5 [" t+ _. b3 Bnohup matlab -nojvm -nodisplay -nosplash < matlabscript.m 1>running.log 2>running.err & $ x, ]- u9 c2 A$ G
或:
* Q4 o: u$ M" _nohup matlab -nojvm -nodisplay < matlabscript.m 1>running.log 2>running.err & * N3 n. k7 d' T
: C3 l+ n6 Y, S8 y2 Q+ u
其中:
  {) r- e: x& B# F; qmatlabscript.m是将要运行的脚本文件,存在于服务器上;
7 N. Z: i5 o7 ~3 O5 R  M9 v' W& rrunning.log是matlab标准屏幕输出的重定向文件,将建立于服务器上;
8 d8 R5 j% c& G% I/ V3 D& wrunning.err是matlab运行时的错误重定向文件,将建立于服务器上。) V/ i% K, y+ `& y
2 D2 [$ p" F$ u. o. e
4、另外补充:1 ?+ M( E# r2 y' J
(1)如果你想中断正在运行的matlab请使用) }' D: H* ^! o% K
              kill -9 进程号
0 z: N" m; m, W& J3 Z         或 fg %n ; Ctrl+C + z' D/ J2 u& M& q3 l: v
(2)如果你想在字符环境的matlab中运行脚本,请使用
+ X- y' m& p9 J1 K- h4 ]              run 脚本文件名(不含.m扩展名) ( B& j, P9 ]/ a# y
(3)如果你想用ssh运行有X界面的matlab,登陆时请使用, }3 N( K% D, y  R' d$ g0 m+ G7 h# y7 O
             ssh 主机名 -l 用户名 -X
# n! |! a/ {( e7 k- R
. z* I) I5 L$ U  r# M- ~0 {( T 4 ]1 P% ^: e5 _5 W, k, I# o* a
' r8 T0 o6 c+ S# d9 \" ?- p2 }0 u
=========================================================- H7 _  {2 W* s5 N  ]- B

. i; Q6 `! j4 U$ u  F7 l, x+ k; o- B& L: \4 b( r
让程序在前台后台之间切换。 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务。( U. Z0 h  o/ i
假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示:
$ W1 m- J0 }3 n& W+ ~/ A) f6 I[1]+ Stopped /root/bin/rsync.sh0 v8 I% O7 C/ Q- e1 D  n
然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号)( K5 D# m6 ]1 h
#bg 1
: s% s) F8 [1 J& o1 n) w7 @[1]+ /root/bin/rsync.sh &
  q! m  a% k+ e' I  A' m; p4 Z4 V+ K: k' v0 F4 n. H+ n
4 `! F: v5 t9 U0 Z- _7 b- q3 C
用 jobs 命令查看正在运行的任务:  T5 N, \7 f2 V/ w
#jobs
! t$ q6 ?6 a' w% E4 V1 j3 f4 h/ F[1]+ Running /root/bin/rsync.sh &
" l% x1 G5 J$ M) O, y" ~3 C' Q% j3 ]% C- O; E6 o& X+ z

2 j2 y$ `2 o, U) V3 V! P如果想把它调回到前台运行,可以用% \3 u, {" c) O& a1 U
#fg 1
2 G. B- _" s1 B0 c/root/bin/rsync.sh7 j+ z  O! s, M/ u
这样,你在控制台上就只能等待这个任务完成了。
6 l9 e5 @7 z) l3 x
* l& q9 s; x7 {" g7 K. b6 z7 q8 K* o0 u' G0 ?

3 F: O' Y/ t" m/ V
- k. [, _$ w( C
& z6 [) g% n9 D8 c7 I% Y[Ctrl-z]是当前任务转到后台中断。
# U+ }, I8 f  C+ c$ S9 C' s8 ?1 ~9 j0 @, Y4 L- v* r8 z
fg 1可以把1的任务转回来当前终端。4 _! m7 B' v# i. r

0 x/ h/ y. f+ sbg 1
; Y: R) x6 i5 B9 _; x
5 l' [2 U9 P( J  c8 z' y: V. w1 x可以把1的任务转回到后台终端。  * R* I: U5 L) s# @$ l8 ~( m' y5 u
+ F; ]5 c7 c& Z; T! j* w% T
jobs -l 可以查看当前进行的任务。- w' a% N% S3 p& v7 C% P& y! M$ M

- N9 ?: A" u# u & f8 @+ p) n* W
5 b6 x- b% A2 l& y2 ^& V
当一个任务bg时,当前的treminal关闭就会关闭,可以用
1 \; h' J/ {* S3 I! ^( V  e7 c5 Y" w/ I5 R2 \, c
nohup来标识可以继续运行(nohup->no hang up不挂断) 2 a! x: \  r' J0 a  Y+ o. R

9 n) k( a; y9 r; v' p  I" j命令是& [: s( z& i4 I3 q6 J3 z/ G

. E: @; |6 T+ ^; Bnohup command &! Q) J" x" h( W' E* b& H. C- `

8 k& q  T' R) X2 ]$ U+ U
1 z0 F: k! B) m- R3 Z3 B+ R5 a9 m0 f# X, e  G* V- }
通过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:30 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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