在Windows上以编程方式中断MATLAB

前端之家收集整理的这篇文章主要介绍了在Windows上以编程方式中断MATLAB前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
通过GUI使用MATLAB时,我可以通过按Ctrl-C来中断计算.

有没有办法在使用MATLAB到the MATLAB Engine C API时以编程方式执行相同的操作?

在Unix系统上有一个解决方案:send a SIGINT signal.这不会杀死MATLAB.它只会中断计算.我正在寻找适用于Windows的解决方案.

澄清(看到唯一的回答者误解):

我正在寻找一种方法来中断任何MATLAB计算,而无需控制正在运行的MATLAB代码.我正在寻找在Windows系统上的MATLAB命令窗口中按Ctrl-C的程序化等效项.这是针对a Mathematica-MATLAB interface:我需要将Mathematica的中断转发到MATLAB.如上所述,我已经在Unix上有一个工作实现;这个问题是关于如何在Windows上执行此操作.

解决方法

一种方法是在执行长计算之前使MATLAB Engine会话可见.这样,如果要中断执行,只需将可见命令窗口置于焦点并按Ctrl-C即可.

这可以使用engSetVisible功能完成

这是我尝试使用MATLAB COM Automation的一个简单示例.该过程应该类似,因为MATLAB Engine是在Windows上使用COM实现的(管道在Unix上使用).

脚本在Powershell中完成:

# create MATLAB automation server
$m = New-Object -ComObject matlab.application
$m | Get-Member

# make the command window visible
$m.Visible = $true

# execute some long computation: pause(10)
$m.Feval('disp',[ref]$null,'Press Ctrl-C to interrupt...')
$m.Feval('pause',10)

# close and cleanup
$m.Quit()
$m = $null
Remove-Variable m

在暂停期间,您可以通过在命令窗口中按Ctrl c来中断它:

猜你在找的Windows相关文章