繁体   English   中英

为C ++可执行文件提供变量作为MATLAB系统命令的输入参数

[英]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注释中所暗示的那样 ,您的代码按字面意义将ab当作字符串ab ,而不是按照您的期望将它们转换为1050 您需要将ab的值转换为字符串后再放入。

result = system(['multiplier.exe ', num2str(a), ' ', num2str(b)]);

Matlab将它们作为字符串传递。

尝试将您的值写入文件并在所述程序内从这些文件读取可能会变通。 但是,如果您的输入/输出很长,并且希望它们具有适当的数据类型,则可能需要过滤来自matlab和cpp的输入和输出流(stdin stdout)以获得适当的行为。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM