我必须承认,这让我疯狂。 在能够成功地编译两个函数之后,我需要处理从可信赖的在线存储库(在Linux中已经过全面testing的代码)下载的C / C ++代码中的语音文件,现在我正努力从Matlab启动这些文件…
当我在cmd(dos)中键入以下命令时,分析b2.wav config_default起作用,没问题(请参阅这里的Works )。
然后,我build立完全相同的命令到一个string,并将其提供给“系统”Matlab函数。 然后代码崩溃…(见这里失败 )我已经尝试完整path(c:\ b2.wav等),但仍然无法正常工作…
任何想法,为什么这可能会发生?
您的图像显示程序Analysis意外停止。
这可能是很多原因,所以让我们一步一步来:
1)尝试执行从终端分析和传递错误的参数(一个文件不存在,只有一个参数(缺少config_defalut),根本没有参数,三个参数等)
你可以通过传递错误的参数使程序崩溃吗?
2)先尝试创建命令,检查是否正确(\ b实际上是\ b而不是字符串修饰符)
command_to_be_run = 'C:\Analysis C:\b2.wav C:\config_default' disp(command_to_be_run) % is it showing exacly what you want? system(command_to_be_run); % if so, run it.
3)尝试在C中创建一个虚拟可执行程序dummy.exe,它接受两个参数并打印接收到的参数(保持超级简单,只是打印)。 从终端调用它。 它工作吗? 从Matlba中调用它。 它工作吗?
有了这3个测试,你可以大大缩小你的错误来自哪里。
顺便说一下,“config_default”是一个文件还是一个告诉分析如何表现的字符串? 在某些示例中,您将其视为文件,而将其他视图作为不带路径的参数。
根据到目前为止已经尝试的和输出结果,这里是我的理论:
编辑:可能hackish的解决方案 – 创建一个批处理文件,其中:(1)您将cd到Analysis.exe和目标wav所在的目录; (2)对批处理文件进行Matlab系统调用。
编辑2:可能的实验来验证断言2。