Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用进程Id替换Matlab标题名称不适用于startup.m_Matlab - Fatal编程技术网

用进程Id替换Matlab标题名称不适用于startup.m

用进程Id替换Matlab标题名称不适用于startup.m,matlab,Matlab,我想启动matlab并将matlab窗口的标题替换为进程id。因此,我创建了以下startup.m文件: cd E:\matlab_files\ jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance; jDesktop.getMainFrame.setTitle(['PID:' num2str(feature('getpid'))]); 现在,matlab将文件夹更改为E:\matlab\u文件,但不会替换进程Id。一旦matlab启动

我想启动matlab并将matlab窗口的标题替换为进程id。因此,我创建了以下startup.m文件:

cd E:\matlab_files\
jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
jDesktop.getMainFrame.setTitle(['PID:' num2str(feature('getpid'))]);
现在,matlab将文件夹更改为E:\matlab\u文件,但不会替换进程Id。一旦matlab启动,我执行startup.m的第2行和第3行,matlab窗口的标题将替换为进程id

请解释这种行为的原因


我正在使用Matlab2009b。

我观察到了相同的行为。请注意,startup.m在matlabrc.m中运行,而MATLAB仍在启动。您可以尝试将代码放在matlabrc.m中,尽管我不建议您编辑该文件

有几个可能的原因:

  • 在startup.m运行后,MATLAB可能会覆盖MATLAB窗口的标题
  • Java在启动期间可能不完全可用,您的代码显然依赖于Java

  • 所有图形尚未完成初始化->因此您无法替换标题(我假设它尚未创建)

    您可以通过尝试将
    jDesktop.getMainFrame.getTitle
    显示到您的
    startup.m
    来检查这一点,您将看到它是空的

    这就是为什么——你没有要求修复——但我想你想要一个!!;)

    你可以用一个计时器来解决这个问题——注意,我在下面的计时器里放了60秒——但它可能会少很多

    function startup
      if ~isdeployed  % its agood practice to use this incase you ever compile your codes.
        cd E:\matlab_files\
        timerFcn = @updatetitle;
        tfcn = timer('StartDelay', 60, 'TimerFcn', timerFcn );
        start(tfcn)
      end
    end
    function updatetitle(varargin)
      jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
      jDesktop.getMainFrame.setTitle(['PID:' num2str(feature('getpid'))]);
    end
    

    非常感谢。我确实想要解决方案:)。工作起来很有魅力。也学到了一些新东西。