加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows上以编程方式中断MATLAB

发布时间:2020-12-14 05:42:17 所属栏目:Windows 来源:网络整理
导读:通过GUI使用MATLAB时,我可以通过按Ctrl-C来中断计算. 有没有办法在使用MATLAB到the MATLAB Engine C API时以编程方式执行相同的操作? 在Unix系统上有一个解决方案:send a SIGINT signal.这不会杀死MATLAB.它只会中断计算.我正在寻找适用于Windows的解决方
通过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来中断它:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读