Matlab 不是 运行 Windows 上的 .exe 外部程序

Matlab is not running a .exe external program on Windows

我正在尝试 运行 Matlab 终端 (R2018a) 中的 .exe 代码,但我遇到了一些问题。

我的 .exe 代码 运行 通常在 Windows cmd 上使用以下通用命令(创建预期的输出文件

code.exe < input

在 Matlab 中我尝试了 4 种方法:

system('code.exe < input');
dos('code.exe < input');
system('code.exe < input', '-echo');
system('set path=%path:C:\Program Files\MATLAB\R2018a\bin\win64;=% & code.exe < input');

他们返回下面的行,没有创建输出文件

ans = -1.0737e+09

在尝试 1 行的末尾添加“&”字符,正如 ref 和许多其他人所建议的那样,Matlab 打开 Windows cmd 在正确的文件夹中,但没有正确执行 .exe 代码(任务管理器中没有进程 运行ning),没有创建输出文件,例如:

system('code.exe < input &');

我也尝试了这个参考文献.exe run in matlab does not create two output files like it does when run in command prompt的建议,但没有成功。此参考建议也返回并且未创建输出文件:“ans = -1.0737e+09”

编辑: 根据此 link,用户 Walter Roberson 说“-1073741511 是十六进制 C0000139,它似乎对应于“未找到入口点”的 Windows 错误代码。这表明您要么试图执行某些本质上没有正确创建(例如,如果您试图直接执行没有主程序的 DLL),或者您执行的程序试图使用无法找到的 DLL。"

关于如何解决这个问题的任何见解?谢谢。

这个 link 的答案解决了我的问题。

基本上,您必须创建一个类似于下面的批处理文件,并根据您的版本更改 Matlab 路径。

fid = fopen('myBatchFile.bat','w')
fprintf(fid,'%s\n','set path=%path:C:\Program Files\MATLAB\R2018a\bin\win64;=%');
fprintf(fid,'%s\n','code.exe < input')
fclose(fid)
system('myBatchFile.bat')