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

linux远程运行matlab

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
0 D0 b+ G! @! k( v; a
Matlab on Linux:
2 d3 |9 F0 y: {+ u7 h: R4 T5 Q( @, a2 v  l
1、不开启图形界面
: v( M4 ~3 h+ b4 K+ \0 v9 z. K8 x1 ~6 J# G( [
matlab -nodesktop –nosplash1 D& \2 X" a. h) V5 H" \" k, o

1 d7 w6 T% @" h( a或者matlab –nodisplay8 d7 j* w2 [6 O& ^! F
) x% _- v! ~/ J% d0 n( J0 r* H
或者matlab -nojvm –nosplash+ r' J/ h8 ?- H$ P( Z4 X
* ~+ T/ l& w5 L& s6 v6 K% k
2、 matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m" D; V) ]+ _6 ?! D7 |2 l, z
: `, v  V2 b# _( v. I
matlab  -nodesktop -nosplash -r example
- S% p+ c3 g' K
8 S* U* ?+ Y9 n7 V1 j( P或者matlab  -nojvm -nosplash -r example, |. p- }3 J% i; S
* y" D1 B4 ]/ i' @; @+ ~5 z; _" s
或者matlab -nodisplay -r example  M! ^5 ?/ P. V$ M# p# u/ s

9 f; [8 W9 F$ o  N! k3、可以将如下命令加到~/.bashrc文件- J$ N( g* m9 j/ l( ~# s
2 y" I! g; ~4 C0 d! N  G4 [/ u
alias mrun='matlab -nodesktop -nosplash -r'5 v9 C, r. d- k3 C) V7 q
" Z# c" q, d$ Q) D; J
这样下次(或者执行source ~/.bashrc)之后就可以直接! G, F) c) T  X$ e
+ A  f7 a: y+ u( q( O4 Y" l
mrun example
8 K- Y( T3 x, V4 G8 `8 [
" u! g0 }4 p1 A4 P0 b来在命令行运行matlab文件。
+ S  F7 ~. F' o8 i& y- ^/ P: M2 Q! K- O( I
4、 如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示:, M" R0 j! v4 M* k! r9 V" @! U

5 v# V3 @, z5 Cfigure('visible','off');
/ J) R7 T) i5 r  _* q: B3 X' i' u' U& _
并使用如下命令将图形输出到文件:$ f2 t  Q' U5 R! ~+ U' P
1 n: t4 r- p1 S8 b+ ~5 e' f
print('-deps','example.eps');& B1 V  R* p" K5 b, Q

$ J1 J+ P6 u6 F! f9 n, f8 x或者" w2 X8 f4 j0 \1 e9 L

0 ~) Y8 \, x% a( t0 S% F3 Ehgsave('example.fig');
/ s6 _: t5 _7 F! A( X/ s! \
0 N' j' |  @* m; v8 d5、图形方式:不会
9 p/ [: g4 Z8 p% @- L- ^
7 a6 q: s, f, B4 \$ }" Y6 J. ^) s% z2 B8 r) x5 l  I" i
后台运行Matlab:3 k' r  w/ {; r( J- g: b6 O
$ k- U5 K4 y% b  T! C
1、实现功能:; Z' x: r8 d0 b/ ^- \! E5 G$ c
1.字符环境下运行matlab.+ F8 `, k' V) k: l* n) Z4 r- u& {
2.字符环境下运行matlab脚本文件,脚本文件无图像的屏幕输出。
# A5 u4 h) X. N2 k+ J+ a3.脚本文件需长时间运行,运行结果输出到文件。matlab的标准重定向到另一个文件。 $ g1 U* [( _' }
4.客户端退出登陆后,matlab保持运行 ,直到脚本程序结束或错误退出时,matlab程序才退出。
0 W! B8 ]& l% e' b) }" O& h
7 |. d9 I; m) N* g$ {+ O3 `8 u2、 实现方法:采用nohup命令。
+ l8 B5 q' `$ D( X4 O" E; m3 s
& G9 A6 B7 Y! V: V4 B3、使用命令:4 z) ?2 n; [% W
nohup /usr/matlab/bin/matlab   fill.out & * M! y- y- y* F% i
就可以了,fill.m表示你的文件名. fill.out代表你的输出转到fill.out文件中。比如,matlab中的命令sin(1:10),结果应该输出到command window中的,但是现在转到了fill.out文件中7 S! t; _( [; I( V# d) x
8 p: D# u4 w4 L$ M0 c
例如:我在/home/jsh/yangting/文件夹下有个test2.m文件, [( I+ X1 {9 m- i- C

. H! b# T8 ]  B% W* d那么,当matlab在/home/jsh/yangting/文件夹下打开时,
- V, V) V& O( S$ C5 v& l3 g- b: v8 j6 l# m- M- ]" D
命令为
* K0 R2 x* }3 h" G; ]: L7 A8 C" ~3 b* x7 \& ]* S4 I+ i
nohup matlab fill.out &
" D* J6 Q# C  B+ X' \7 i9 t+ H6 n+ j
5 k0 U# P0 P/ d注意:在nohup运行成功后,不能直接点击关闭按钮,而应该按下任意键,恢复到入状态,然后按exit命令退出。
$ x1 j! Z9 X& {- ]
0 ]; P* ~; v7 y2 W0 [$ v使用命令:
( u# U  {; K6 C" T, gnohup matlab -nojvm -nodisplay -nosplash -nodesktop < matlabscript.m 1>running.log 2>running.err &
+ t) h4 a1 C7 W4 Q7 Q# F( ]5 Z" T. M- u1 C+ p/ W" }
nohup matlab -nojvm -nodisplay -nosplash < matlabscript.m 1>running.log 2>running.err & % U' S  M5 l0 D0 o/ H' s) v
或:3 v+ i  V6 f/ K. ]8 e- D: m: `3 ]' Q
nohup matlab -nojvm -nodisplay < matlabscript.m 1>running.log 2>running.err & 1 m: y# f9 v4 Q% b6 I

1 F: ~  u% _+ u; }9 d其中:: \4 o0 \. M8 G- a5 x1 s
matlabscript.m是将要运行的脚本文件,存在于服务器上;+ t4 D! t5 O, M
running.log是matlab标准屏幕输出的重定向文件,将建立于服务器上;
  s: _& `, H) X. Q' u1 p9 _running.err是matlab运行时的错误重定向文件,将建立于服务器上。
1 w1 |+ p' G2 v$ w( S7 y. C
7 k5 @- r; }2 n3 D$ e% D( }4、另外补充:
1 d" L7 }% A  p9 n(1)如果你想中断正在运行的matlab请使用- u" \* n6 T, b6 E2 T, I& x
              kill -9 进程号 # a- `# n$ U  J% G# }
         或 fg %n ; Ctrl+C
8 U! g, U5 c% I9 z(2)如果你想在字符环境的matlab中运行脚本,请使用
/ j; K  N0 \* s0 n6 }  X' Q- t% m              run 脚本文件名(不含.m扩展名) 1 H, _) ~2 l) V1 F# V( G+ s* ?
(3)如果你想用ssh运行有X界面的matlab,登陆时请使用
2 I6 w: c7 p* p+ \. [             ssh 主机名 -l 用户名 -X' q- q: t# R: \0 H/ a/ q, i1 b
) C+ V, B. P3 d

- C% c  y' s1 d! K9 ^% j2 r
9 A$ ^5 N) `, z" |4 p3 A" G=========================================================
9 i: |) c5 P7 P! l  C& f1 n4 p: W' @0 m% C* |: v+ o, d7 W

$ ]# i' h9 C7 a& U/ t! I. I让程序在前台后台之间切换。 Linux 提供了 fg 和 bg 命令,让你轻松调度正在运行的任务。' B" w& y8 j( n( c% K
假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示:! p' F6 [& n$ z
[1]+ Stopped /root/bin/rsync.sh  z5 _2 V5 U% t0 N, t  f# z0 J  F
然后我们可以把程序调度到后台执行:(bg 后面的数字为作业号), c7 ]  N; j$ @2 e& @
#bg 1
/ u- u8 R) g% C% A8 j' Z) J[1]+ /root/bin/rsync.sh &
% F0 Q1 y# f% m0 I  N7 t$ L) h% Y. B7 H  d- |; F# P. a* D
- F9 R- z8 x, W$ e! A
用 jobs 命令查看正在运行的任务:* M2 j: v1 R' B' d8 n9 O& F
#jobs
" E/ m- m" x8 ~& p8 i[1]+ Running /root/bin/rsync.sh &* g& l, N( w! Z; I$ C% h3 o+ I, P

& A5 W- W# D/ K- C+ m
8 t% `8 b( W3 s/ q如果想把它调回到前台运行,可以用
8 |( I1 j6 I6 d#fg 1
% n6 ?; S& g7 J3 [8 {2 c/root/bin/rsync.sh( i+ \! a5 N' o9 {) l% A  u
这样,你在控制台上就只能等待这个任务完成了。* J2 O4 k# n3 L
% W. `( e- Q) d/ v5 n/ Q

# S* B1 Z2 w( |! [  [1 q- I. o8 u0 W+ I' G, t  q2 c1 p

6 I2 j  {9 [) c
6 X' B, ?7 i: i; A3 A9 u[Ctrl-z]是当前任务转到后台中断。* E, c4 d0 }4 E" r2 D1 g( I
# l( Q5 ~. a* z, _% w! h
fg 1可以把1的任务转回来当前终端。. u0 W5 E; j" X  Z2 ^) s' i

0 u; P: o9 O4 b# [& M% `- P& ~bg 1
& m! J; {8 F1 @7 i( m( R  T, l
4 C  x, U* F- ]" |可以把1的任务转回到后台终端。  " \& m& i' H- t

. Y, B) `5 ?7 Wjobs -l 可以查看当前进行的任务。
, j0 R3 }* V) [: {0 D  @0 c/ `- h% i7 a/ n8 w8 p
3 H+ D% b0 K) r. L( c* I) ?
0 q4 E$ s9 l# w- R5 U
当一个任务bg时,当前的treminal关闭就会关闭,可以用
" r( G- b/ u6 U
# U; G% _0 f4 q6 X4 Lnohup来标识可以继续运行(nohup->no hang up不挂断) 1 }3 o, y" |- m  F4 j

. E' f$ ^6 Q/ M2 U2 |. o4 q/ K命令是- R. G2 o) Q) u1 |: T' M4 D5 s5 y

; w1 m7 M6 m! F( |* I. e  ^3 Unohup command &. P& `, [2 {$ u5 k* @+ o) g& X

( Z6 X' q7 x& }/ V
  ]" w5 s; Y0 K# W7 s, X. x6 `: p  S2 s' ]  C$ \5 N# j
通过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 03:58 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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