运行batch fileMATLAB – DIANA TNO

目前,我正在使用一个名为DIANA的有限元软件,我总是能够用MATLAB执行batch file来运行“简单”模型。 尽pipe如此,现在我开始使用更多的“复杂”模型(只是更强大,更多的元素),但程序是完全一样的,我以前一直使用。 问题是,现在我不能从MATLAB运行模型,它显然开始运行它,但突然停下来。 我正在使用下一个命令:

dos('path\filename.bat') 

要么

 system(fullfile(path,'filename.bat' )) 

两行都执行.bat文件。 我以为我的文件有问题,所以我查了一下,但显然没有错。 然后我只是双击.bat文件,程序运行没有问题。 然后我意识到问题不是这些文件,而是来自MATLAB的执行。 现在你已经知道问题的背景了,你能否给我一些build议,以避免MATLAB在内部“杀死”这个过程?

在MATLAB中显示的执行轨迹如下:

 diana: working directory is *CURRENT DIRECTORY NAME* diana: input file is *FILENAME*.dat diana: command file is *FILENAME*.dcf diana: output file is *FILENAME*.out diana: filos file is diana.ff DIANA JOB 8028 finished 

直接在batch file中双击的跟踪执行如下:

在这里输入图像描述

在上图所示的标注文件中,包含了模型的输出,在直接从MATLAB执行的时候,那些没有出现的,因为MATLAB之前完成了这个过程。

预先感谢您的任何答案!

Pd:我正在使用具有下列特征的计算机:Windows7,12 Gb RAM,OS 64位,处理器Intel Xeon 2.53 GHz。

您所运行的内容不完全等同于双击.bat文件,特别是因为当前目录不同,并且如果批处理文件需要访问辅助文件(相对路径),则文件将不会被找到。

尝试在批处理文件中添加第一个命令(或者在echo off之后)

 Cd /d %~dp0 

这是戴安娜支持团队提供的解决方案:

似乎MATLAB设置了一些限制每个线程的内存使用的环境符号。

当你从Matlab启动Diana时,通过重置符号的批处理文件,所有工作都正常。

这样的批处理文件可能如下所示:

 rem === Diana Environment Setup === call "C:\Program Files\Diana 10.0\dialogin.bat" rem Unset the symbols added by MATLAB set KMP_STACKSIZE= set KMP_HANDLE_SIGNALS= set KMP_BLOCKTIME= rem start the diana job diana test2