将Matlab参数传递给C程序

时间:2013-12-24 20:10:24

标签: matlab shell process command-line-arguments execution

我编写了一个简单的C程序,它接受命令行参数并显示该参数:

#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[]){
if(argc<2){return 0;}
else{
    double x=atof(argv[1]);
    printf("%f\n",x);
    return 0;
    }
}

现在我想使用system()函数在Matlab中运行这个程序:

>> x=3.14;

>> cmd=['/path/to/program/./test',x]

cmd =

/path/to/program/./test

>> [status,cmdout]=system(cmd)

status =

127


cmdout =

/bin/bash: /path/to/program/./test: No such file or directory

当我尝试时,这似乎不起作用。我真的不知道如何解决这个问题。我正在使用Mac。提前谢谢。

1 个答案:

答案 0 :(得分:0)

尝试:

x=3.14;
cmd=['/path/to/program/./test ',num2str(x)];
[status,cmdout]=system(cmd)

和'/ path / to / program /'看起来很奇怪 - 测试真的位于/ path / to / program /?