使用MATLAB“dos”函数引用可执行文件的问题

时间:2011-05-12 18:20:21

标签: matlab dos

我有一个相当简单的问题让我陷入困境。我正在尝试使用MATLAB作为shell运行从简单的C程序构建的可执行文件,即使用以下MATLAB代码:

FileName = ['D:\Users\person\Desktop\MATLAB\GUI','\Program.exe &'];

dos(FileName);

可执行文件正确开始运行,但崩溃时发出错误:

Debug Assertion Failed!

Program: D:\Users\person\Desktop\MATLAB\GUI\Program.exe

File: f:\\dd\vctools\crt_bld\self_x86\crt\src\fscanf.c

Expression: (stream != NULL)

程序打开文本文件,读取输入,执行数学函数,并将输出写回另一个文本文件。我认为这个错误意味着从文本文件读取时出现问题,但是当我自己运行可执行文件(即Windows资源管理器双击)时,它会像我期望的那样完美无缺地执行。

因此,只有MATLAB指向导致崩溃的文件位置。有任何想法吗?谢谢。

1 个答案:

答案 0 :(得分:0)

听起来相对路径是罪魁祸首。 Matlab命令从您在Matlab中指定的任何目录运行; cmd从root或类似的东西运行(不太了解Dos)。这就是为什么它指定绝对路径时的工作原理。将您的Matlab目录更改为DOS根目录,并查看它是否按原始编码工作。

编辑:请注意,它是Program.exe尝试读取的任何文件的路径,这是问题,而不是Program.exe本身的路径。