gpt4 book ai didi

matlab - 使用Matlab在后台异步调用系统函数

转载 作者:行者123 更新时间:2023-12-05 01:23:41 24 4
gpt4 key购买 nike

我可以使用 Matlab 调用系统函数如下:

system('dir');

这会在 matlab 的标准输出上显示结果并同步运行。

我可以使用以下方法捕获变量中的输出:

[status,stdout]  = dos('dir');

这不会显示任何输出,但仍会同步运行。

我可以通过使用异步运行脚本;

system('dir &');

这会弹出一个命令窗口,然后在前台运行,并在功能完成时保持打开状态。

想做的在后台异步运行命令,并在完成后关闭。有没有办法做到这一点?

我在 windows 7 上

最佳答案

尝试使用 Windows start 命令更好地控制新进程的启动方式。它将启动一个新进程并返回。例如:

[status,out] = system('start /b /min myprogram.exe');

如果 start 选项对您来说不够,您可以使用 Java java.lang.Process 或 .NET System.Diagnostics.Process 类以更直接地从代码启动进程。两者都可以直接从 Matlab 代码中调用,并允许您启动一个新进程,使其异步运行,并检查其状态。基本上,这是 Matlab 的 system() 的替代方法,它可以让您更精细地控制您正在启动的过程。特别是,.NET 会让您指定窗口状态,是否使用 shell 来处理命令,等等。而 IIRC,Java 足以启动 win32 控制台应用程序(我假设您的 exe 被编译为)而不会出现新窗口。

如果您想对进程进行一些额外的监控和交互,并且愿意编写一些 Java 代码,您可以从 Matlab 的嵌入式 JVM 中的新 Java 工作线程运行该进程。

关于matlab - 使用Matlab在后台异步调用系统函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com