linux 服务器下调用带参数的.m 文件
- 想看解决方法的同学直接看总结即可
问题引入
- 最近要用 matlab 跑程序, 众所周知, 如果连接一断, 程序也会随之终止. 所以自然而然就想到了 nohup 命令.
- 之前跑过 python 环境, 即使用后面这段命令来运行某个 python 脚本: nohup python xx.py > python_log.txt &
- 这段命令是使用 python 来执行一个名为 xx.py 的 python 文件, 并且将标准输出, 错误输出都定向到 python_log.txt 这个文件. & 这个符号是后台运行, 不能忘记打这个符号.
- 所以要运行 .m 文件, 我们只要依葫芦画瓢, 将 python 改为 matlab, py 改成 m 即可.
- 但是我们的函数如果带参数怎么办? 我尝试了一个直接在重定向符号之前加上一串以空格分隔的参数, 发现会报错, 那该怎么办?
问题解决
- 可怜智商不足, 一直在网上找相关资料, 花了九牛二虎之力, 也没找出个所以然来.
- 后来搜资料的时候看到”脚本”二字, 突然想起来在matlab 中.m 文件有function 和 script 之分. 那么我可以曲径通幽苑, 再调用一个脚本文件,就可以解决问题. 所以最后我们只需要将参数存在脚本文件里, 然后调用这个脚本文件即可.
总结
- 将参数存储在脚本文件中, 直接调用脚本文件, 就能达到目的.