【问题标题】:MATLAB: How to keep the terminal state after using unix() command?MATLAB:使用 unix() 命令后如何保持终端状态?
【发布时间】:2017-07-30 02:42:30
【问题描述】:

使用unix 命令后,Matlab 运行脚本并关闭终端,清除终端中的所有变量。在这个简化的例子中,如果我运行:

[status1,cmdout1]=unix('NUM=100'); %//create variable NUM and assign value 100 to it
[status2,cmdout2]=unix('echo $NUM'); %//display variable value

两个命令都会成功运行,但cmdout2 将是一个空字符串。为了缓解这种情况,我可以在一个 unix 块中运行这两个命令,例如:

[status,cmdout]=unix('NUM=100;echo $NUM');

所以在将100 分配给NUM 之后,终端没有关闭,我会在cmdout 中看到100。但是,对于我的应用程序,这是不可能的,因为需要在 Matlab 中进行一些中间处理。那么问题来了,运行unix命令后如何保存终端和所有变量?

【问题讨论】:

    标签: linux matlab unix


    【解决方案1】:

    MATLAB 在原始matlab 进程的环境中执行外部命令。你可以尝试使用setenv修改matlab环境。

    >> setenv('NUM','100');
    >> [status,cmdout] = unix('echo $NUM')
    status = 0
    cmdout = 100
    

    所有后续命令也将能够看到NUM 变量的新值。

    【讨论】:

      猜你喜欢
      • 2019-04-23
      • 2022-12-22
      • 2018-02-22
      • 1970-01-01
      • 2020-04-11
      • 2016-03-18
      • 2021-03-04
      • 1970-01-01
      • 2021-04-29
      相关资源
      最近更新 更多