gpt4 book ai didi

matlab - 如何在 MATLAB 中以编程方式向命令窗口发送命令?

转载 作者:行者123 更新时间:2023-12-02 08:23:30 27 4
gpt4 key购买 nike

在 matlab 中,我可以通过 bang (!) 符号更改为另一个 shell。

示例:我通过以下命令在 MATLAB 中进入 conda 环境:

!cmd '"%windir%\System32\cmd.exe" /K ""C:\Program Files\Anaconda3\Scripts\activate_<conda-env-name>.bat" "C:\Program Files\Anaconda3""'

我的 MATLAB 命令窗口显示以下内容:

(<conda-env-name>) U:\some_starting_path>

现在,有没有一种方法可以以编程方式向新输入的 shell 发送命令,以便以该 shell 的语法而不是 MATLAB 命令来计算该命令?例如,如何编写执行 Python 命令的代码,而无需手动将其输入命令行?

最佳答案

不使用!命令或system()。这些是“一劳永逸”的功能。

但是你可以使用Java的java.lang.Process API从 Matlab 内部控制正在进行的过程并与之交互。

function control_another_process

pb = java.lang.ProcessBuilder(["myCommand", "myArg1", "myArg2"]);
proc = pb.start; % now proc is a java.lang.Process object
stdin = proc.getOutputStream; % Here's how you send commands to the process
stdout = proc.getInputStream; % And here's how you get its output
stderr = proc.getErrorStream;

% ... now do stuff with the process ...

end

您可以将其与 shell、python 或任何其他命令一起使用。

这里有一个 Matlab 类,它封装了 Java 代码,以便于在 Matlab 中使用:https://github.com/apjanke/janklab/blob/master/Mcode/classes/%2Bjl/%2Butil/Process.m

关于matlab - 如何在 MATLAB 中以编程方式向命令窗口发送命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59377171/

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