如何在SSH中调用MATLAB函数/脚本?自定义函数调用报错求因
解决Matlab命令行调用函数时的「输入参数不足」错误
我来帮你排查这个问题——你遇到的错误主要是两个细节没处理对,咱们一步步来修正:
1. 函数调用的语法错了
你在命令里写的 S 3 5 是脚本文件的调用方式(把参数作为命令行输入传递给脚本),但你的 S.m 是一个需要显式传入参数的函数。对于函数来说,必须用括号把参数括起来,也就是要写成 S(3,5)。
如果用空格分隔参数,Matlab会把 S 当成一个不带参数的函数调用,后面的 3 和 5 会被当成单独的无效命令,这就直接触发了「输入参数不足」的报错。
2. Matlab命令行参数的顺序不对
你的命令里 -r 和 -nodisplay 的顺序搞反了。Matlab的命令行规则是:模式选项(比如 -nodisplay)要放在 -r 前面,-r 后面必须紧跟要执行的命令字符串。
正确的命令写法
把上面两个问题修正后,最终的命令应该是这样的:
matlab -nodisplay -r "S(3,5); exit;" > sum.txt
额外加个 exit; 是为了让Matlab执行完函数后自动退出,避免它一直留在后台占用系统资源。
只要你的 S.m 文件在当前工作目录(或者Matlab的搜索路径中),执行这个命令后,sum.txt 里就会得到 8 的计算结果啦。
内容的提问来源于stack exchange,提问作者Drimades Boy
相关产品推荐
相关产品推荐

