Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在bash脚本和Matlab之间传递变量_Linux_Bash_Matlab - Fatal编程技术网

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

Linux 如何在bash脚本和Matlab之间传递变量,linux,bash,matlab,Linux,Bash,Matlab,例如,在Matlab中,我有一个字符串x='foo',所以我想在bash脚本中使用它。或者我在bash脚本中使用了x=$'foo',所以我想在Matlab中使用x。有办法做到这一点吗?我不能告诉你有关matlab的内容,但在八度音阶中,一切都很简单 例如,要将bash变量传递给倍频程,只需执行以下操作: Xmax=10; echo "x=[1:$Xmax]; sin(x)" | octave -q ans = Columns 1 through 8: 0.84147 0.9093

例如,在Matlab中,我有一个字符串
x='foo'
,所以我想在bash脚本中使用它。或者我在bash脚本中使用了
x=$'foo'
,所以我想在Matlab中使用
x
。有办法做到这一点吗?

我不能告诉你有关matlab的内容,但在八度音阶中,一切都很简单

例如,要将bash变量传递给倍频程,只需执行以下操作:

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

您可以使用
-r
开关通过其命令行界面将命令传递给MATLAB,例如

matlab -r "x=1:whateverYouWant; y=somethingElse;"

有关更多信息,请参阅。

开箱思考!谢谢在不明显的情况下,
-r“x=$x”
将shell变量
x
的值插值到Matlab脚本中。双引号很重要;单引号禁止变量扩展。如果变量的值需要在Matlab中引用,则也必须提供引号。