如何将整数和字符串从MatLab传递到PowerShell脚本?

w51jfk4q  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(137)

我需要自动化一个测试。测试本身是(由我自己)用MatLab编写的,有5个阶段,每个阶段以将一个值设置为一个整数(uint16_t和uint8_t)结束,并以一条消息结束。我必须将这5个整数和5个字符串传递给PowerShell脚本,因为Jenkins只能运行PowerShell或Python脚本,但我不完全确定如何才能实现这一点。我从来没有使用过PS,也没有做过任何脚本编写,互联网上也没有多少关于如何用PowerShell运行一个matlab脚本的内容。(也许我应该检查一下运行matlab脚本的批处理文件脚本。)
到目前为止,我找到的唯一选择是用MATLAB写入一个(临时)文件,然后从它读取(并删除它),它可以是一个.txt文件,或者最好是.csv文件(尽管Mathworks不推荐使用csvwrite),但这不是很可靠。有没有人能提出其他更直接的方法来传递它?MatLab文件不是一个函数,但可以使其成为将这些变量作为输出的文件。此外,如果将整数转换为另一种整数类型,也是可以的。

rdlzhqv9

rdlzhqv91#

就像@TessellatingHeckler所说的那样,方法是$results = matlab.exe yourscript
这里是一个例子,如果你想在启动测试时有更多的功能,比如没有显示窗口,以批处理模式运行,或者等待到MATLAB执行结束。

runTestMatlab (){
   result=$(matlab.exe -wait -nosplash -noFigureWindows -batch TestScript.m)

   if [ $? -ne 0 ]; then
       # Error with the Matlab run
       echo $result
       return 1
   fi
   echo "$result"
   return 0
}

然后,您可以使用awk或任何其他您想要的工具来解析结果。

相关问题