![](/img/trans.png)
[英]How can I run system commands in C/C++ using `execl()`, passing the function arguments only as a command line, not as an executable file?
[英]Provide variables as input arguments to MATLAB system command for a C++ executable
我有一个在MATLAB中实现的算法。 我想用我自己的C ++实现替换不同的内置操作。 我不想使用MEX作为额外的开销。 有什么办法可以使用“系统”命令将变量作为输入参数提供给我的C ++可执行函数。 例如,对于用C ++实现的乘法器,以下工作。
result = system('multiplier.exe 10 50')
结果为500。但是以下操作无效:
a = 10;
b = 50;
result = system('multiplier.exe a b');
在这种情况下,结果始终为0。 我试图使用setenv和getenv函数。 但是结果仍然是0。有什么帮助吗?
正如user4581301在注释中所暗示的那样 ,您的代码按字面意义将a
和b
当作字符串a
和b
,而不是按照您的期望将它们转换为10
和50
。 您需要将a
和b
的值转换为字符串后再放入。 即
result = system(['multiplier.exe ', num2str(a), ' ', num2str(b)]);
Matlab将它们作为字符串传递。
尝试将您的值写入文件并在所述程序内从这些文件读取可能会变通。 但是,如果您的输入/输出很长,并且希望它们具有适当的数据类型,则可能需要过滤来自matlab和cpp的输入和输出流(stdin stdout)以获得适当的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.