我有以下问题:如何告诉Matlab它不应该等待函数的结果?除了线程之外还有其他方法吗?
我的问题:我有一个函数A,每隔几秒钟由一个Timer调用。如果满足特定事件,则在函数A内调用另一个函数B.函数B打开批处理文件。 我想要功能A继续而不等待功能B结束。有没有办法轻松做到?
如果已经提出这个问题,我很抱歉,但我找不到令人满意的答案。请原谅我的英语不好。
我要感谢所有回答他们帮助的人。
答案 0 :(得分:4)
在你的功能B中,只需在行尾用&
调用批处理文件。
例如:
!mybatch.bat &
这将在后台模式下运行文件mybatch.bat
,并在调用后立即将执行返回给Matlab。
或者您更喜欢完整的表格:
[status, result] = system('mybatch.bat &')
但在这种情况下它有点无用,因为系统在后台调用mybatch
,result
变量始终为空,status
始终为0
(是否找到并执行了文件mybatch.bat
编辑:这是一个快速的伎俩,以防它只是批处理文件执行,这会减慢您的程序。
如果你在函数B中有更多的matlab指令,并且你真的需要函数A继续而不等待,你将不得不设置一个带有函数B作为回调的监听器对象。然后在函数A中,触发事件(将激活侦听器并调用函数B)。