2014-10-18 91 views
4

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

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

对不起,如果这个问题已经被问到,但我找不到满意的答案。请原谅我的英文不好。

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

回答

4

在你的函数B中,只需在该行的最后调用带有&的批处理文件即可。

例如:

!mybatch.bat & 

这将在后台运行模式下的文件mybatch.bat和呼叫后,立即返回执行Matlab的。

,或者您更完整的形式:

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

但在这种情况下,它是一个有点用处,因为系统调用mybatch的背景下,result变量始终是空的,status总是0(文件是否mybatch.bat被发现并执行与否)


编辑:这是在的情况下快速把戏它仅是放缓道指批处理文件执行你的节目。

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