如何在Bash脚本和Matlab之间传递变量

3
例如在Matlab中我有一个字符串x = 'foo',所以我想在bash脚本中使用它。或者我在bash脚本中有x =$'foo',所以我想在Matlab中使用x。是否有一种方法可以实现这一点?
2个回答

2

我无法告诉你有关Matlab的信息,但在Octave中一切都很简单。

例如,要将bash变量传递到Octave中,只需执行以下操作:

Xmax=10; echo "x=[1:$Xmax]; sin(x)" | octave -q
ans =

 Columns 1 through 8:

   0.84147   0.90930   0.14112  -0.75680  -0.95892  -0.27942   0.65699   0.98936

 Columns 9 and 10:

   0.41212  -0.54402

反之亦然:
Xmax=$(echo "fprintf(1, '%g', max(sin([1:5])))" | octave -q); echo $Xmax
0.909297

2
您可以通过 MATLAB 的命令行界面使用 -r 开关传递命令,例如:
matlab -r "x=1:whateverYouWant; y=somethingElse;"

请参阅UNIX命令行界面文档了解更多信息。


打破常规思维!谢谢! - Sibbs Gambling
如果不明显,-r "x=$x"将shell变量x的值插入Matlab脚本中。双引号很重要;单引号会抑制变量扩展。如果变量的值在Matlab中需要引用,您也必须提供引号。 - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接