Matlab" system"命令卡住了

时间:2016-04-22 15:15:11

标签: matlab operating-system

我使用matlab自动参数并启动有限元方法代码。我写了一个FEM代码将读取的参数文本文件,然后用:

调用FEM代码
[status,cmdout]=system(['FEMApp ' current_folder '\MyFile']);

有时,FEM应用程序将无法完成其任务,并在命令窗口中发送错误消息。到目前为止,我能够在cmdout中检测到错误消息,然后继续执行下一个参数集。

由于未知原因,系统命令开始表现不同:它似乎永远陷入困境(Matlab始终处于"忙碌"模式)。我没有意识到改变了什么吗?

目前,我正在使用以下解决方案:

[status,cmdout]=system(['FEMApp ' current_folder '\MyFile &']);
pause(45)
system(['taskkill' 'FEMProcessus')

它工作正常,但它会大大减慢我的计算速度(~x5),因为即使任务在很短的时间内完成,Matlab也会等待45秒。

有人能解释一下Matlab的行为变化吗? 有人比我的工作更聪明吗?

1 个答案:

答案 0 :(得分:0)

应该注意的是,Matlab是一个解释器而不是编译器。这意味着它执行大量内部操作,对开发人员隐藏,其中一些可能需要大量CPU资源。在使用CPU和RAM资源方面,有限元应用程序在数值上非常强大。使用Matlab进行FEM编程可能不是一个好主意。尝试使用一些面向数字的语言,如C或Fortran,您可以完全控制内存分配和算术运算。