2 つの解決策が役立つ場合があります。実際には、少し複雑です。解決策 1 c コードによるプログラムの mex メソッド コントロール ウィンドウを使用します。解決策 2 も複雑です。MATLAB 並列ツールボックスを使用するだけです。うーん、解決策1を使用することをお勧めします。
解決策 1:
対話型プログラム (つまり、ここではウィンドウ エクスプローラー) を制御する cpp ファイルを作成します。コードは以下です。コードをコピーして、MATLAB の現在のフォルダーに "ctrlWindow.cpp" として保存します。
コンパイラ lcc で ctrlWindow.cpp をコンパイルします。
mex -setup % choose compiler: type this command at MATLAB command, then choose lcc complier on windows 32 system
mex ctrlWindow.cpp % compile cpp: you would find ctrlWindow.mexw32 at current folder
MATLAB コマンドで m-file として mex ファイルを実行します。
ctrlWindow('your_program_window_name',command);
つまり、フォルダ「myfold」のウィンドウ名は、ウィンドウの左上に表示される myfold です。次のコマンドを入力します。
ctrlWindow('myfold',6);
これにより、フォルダ ウィンドウが最小化されます。最初にプログラム ウィンドウを最小化してから最大化すると、参加者は再びプログラムに集中できるようになります。
ctrlWindow('myfold',6);%minimize window
ctrlWindow('myfold',3);%maximize window and participants would focus on this window
コマンドはここにあります:
HIDE 0
SHOWNORMAL 1
NORMAL 1
SHOWMINIMIZED 2
SHOWMAXIMIZED 3
MAXIMIZE 3
SHOWNOACTIVATE 4
SHOW 5
MINIMIZE 6
SHOWMINNOACTIVE 7
SHOWNA 8
RESTORE 9
SHOWDEFAULT 10
FORCEMINIMIZE 11
MAX 11
//ファイル名:ctrlWindow.cpp
#include <windows.h>
#include "mex.h"
void mexFunction( int nlhs, mxArray *plhs[],
int nrhs, const mxArray *prhs[] )
{
mxChar* winName; //name of window wanted to be found
HWND hwnd; //handle of window
int command; //command of control window
// check number of input
if(nrhs!=2)
mexErrMsgTxt("input must be 2");
// check class of input
if (mxIsChar(prhs[0]))
winName=mxGetChars(prhs[0]);//get name of window
else
mexErrMsgTxt("input 1 should be char -- name of window");
if (mxIsDouble(prhs[1]))
{
command = (int) mxGetScalar(prhs[1]);//get command
if(command<0 || command >11)//check command
mexErrMsgTxt("No such command!!!");
}
else
mexErrMsgTxt("input 2 should be a double");
// find window
hwnd = FindWindowW(NULL, (LPCWSTR)winName);
if(NULL==hwnd)
{
MessageBoxW(NULL,(LPCWSTR) L"Can't find the window!!!",NULL,MB_OK);
return;
}
ShowWindow(hwnd, command);//control the window
}
解決策 2:
matlabpool open 2
2 つの matlab バックグラウンドを開き、最初のプログラムを使用して最初のプログラムを制御し、2 番目のプログラムを使用して 2 番目のプログラムを制御します。