我可以在一个Matlab会话中更改脚本而另一个正在运行该脚本吗?

Sol*_*ong 1 parallel-processing matlab

我有两个并行运行的Matlab会话.

为方便起见,我只是将每次运行中硬编码的参数更改为脚本.

所以我的问题是,当第一个Matlab会话运行该脚本时,我可以更改脚本吗?在我更改并保存了那个脚本后,第一个Matlab会话是否会根据脚本的原始版本运行?

我有多个相互调用的脚本.这种情况会更复杂吗?

如果答案是肯定的,那么在我看来,对于每次运行,Matlab都会制作所有脚本的临时副本并运行该副本,而不管硬盘更改如何.

Rod*_*uis 7

按"运行"后,MATLAB的第一步是将所有脚本/函数的M代码及其所有依赖项解析为类似于"字节代码"的内容.这意味着无论MATLAB运行什么,它都完全在内存中,因此不再与M文件中的内容耦合.

因此,您可能确实使用另一个MATLAB会话来更改M文件中的参数,保存它,并在新会话中运行它,而不会影响第一个会话的结果.

务必保存或打印这些变量的值; 以这种方式工作是一种肯定的方法,可以忘记这些参数的值又属于哪个会话:)

请注意,这不适用于:

  • 数据文件或在运行时显式读取的其他文件
  • MEX文件