让Matlab继续而不是等待结果

时间:2014-10-18 13:02:53

标签: matlab

我有以下问题:如何告诉Matlab它不应该等待函数的结果?除了线程之外还有其他方法吗?

我的问题:我有一个函数A,每隔几秒钟由一个Timer调用。如果满足特定事件,则在函数A内调用另一个函数B.函数B打开批处理文件。 我想要功能A继续而不等待功能B结束。有没有办法轻松做到?

如果已经提出这个问题,我很抱歉,但我找不到令人满意的答案。请原谅我的英语不好。

我要感谢所有回答他们帮助的人。

1 个答案:

答案 0 :(得分:4)

在你的功能B中,只需在行尾用&调用批处理文件。

例如:

!mybatch.bat &

这将在后台模式下运行文件mybatch.bat,并在调用后立即将执行返回给Matlab。

或者您更喜欢完整的表格:

[status, result] = system('mybatch.bat &')

但在这种情况下它有点无用,因为系统在后台调用mybatchresult变量始终为空,status始终为0(是否找到并执行了文件mybatch.bat


编辑:这是一个快速的伎俩,以防它只是批处理文件执行,这会减慢您的程序。

如果你在函数B中有更多的matlab指令,并且你真的需要函数A继续而不等待,你将不得不设置一个带有函数B作为回调的监听器对象。然后在函数A中,触发事件(将激活侦听器并调用函数B)。