在MATLAB中,调用系统命令非常容易,例如:
>> system('ls');
yprime.c yprime.mexa64
(注意:使用Ubuntu)
从C(++)程序,我可以使用std::system
执行系统命令:
#include <cstdlib>
int main()
{
std::system("ls");
}
但是如何从MATLAB Mex程序执行系统命令?
#include <cstdlib>
void mexFunction(int nlhs,mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
std::system("ls");
}
^^以上编译,但在运行时不会输出任何内容。
答案 0 :(得分:1)
我认为你应该看看那个帖子:
Capturing stdout from a system() command optimally
#include <stdio.h>
FILE *popen(const char *command, const char *type);
int pclose(FILE *stream);