有没有办法改变MATLAB命令窗口的标题?

时间:2009-12-17 20:15:09

标签: windows matlab matlab-engine

我正在使用C ++ API启动MATLAB(通过engOpenSingleUse)。一切都很好。但我想将窗口的标题从“MATLAB命令窗口”更改为其他内容。

我经常打开4或5个,如果我的程序崩溃,偶尔会有一个孤儿。如果我可以更改标题,我会更好地了解哪一个是哪个。

是否有可以执行的MATLAB命令(通过engEvalString)执行此操作?

2 个答案:

答案 0 :(得分:10)

对于Matlab 7:

jDesktop = com.mathworks.mde.desk.MLDesktop.getInstance;
jDesktop.getMainFrame.setTitle('my new title');

*或特别针对命令窗口:

cmdWin = jDesktop.getClient('Command Window');
cmdWin.getTopLevelAncestor.setTitle('my new title');

对于Matlab 6:

jDesktop = com.mathworks.ide.desktop.MLDesktop.getMLDesktop;
jDesktop.getMainFrame.setTitle('my new title');

*或命令窗口:

cmdWin = jDesktop.getClient('Command Window');
cmdWin.getTopLevelWindow.setTitle('my new title');


此处描述了其他相关的未记录的桌面功能:
http://UndocumentedMatlab.com/blog/tag/desktop/

答案 1 :(得分:1)

尝试直接针对Java AWT类进行编码。这可能更灵活,可以在C ++下运行的Matlab引擎内部工作。 (没有在那种情况下测试它,因为我不使用引擎。)

function change_win_title(oldName, newName)

wins = java.awt.Window.getOwnerlessWindows();
for i = 1:numel(wins)
    if isequal(char(wins(i).getTitle()), oldName)
        wins(i).setTitle(newName);
    end
end

你会这样使用它。

change_win_title('MATLAB Command Window', 'My new window name')

您可以使用其他测试(窗口类等)来识别感兴趣的窗口。