Matlabに9つの開いた図(別の関数によって生成された)があり、それらをすべてファイルに印刷したい。 MATLABで開いているすべての図のハンドルを取得する方法を知っている人はいますか?
私はgcf
について知っていますが、それは私が望むことをしないようです。
これを行うにはいくつかの方法があります。これを行う1つの方法は、 ルートオブジェクト (以前のバージョンではハンドル0
):
figHandles = get(groot, 'Children'); % Since version R2014b
figHandles = get(0, 'Children'); % Earlier versions
または、関数 findobj
を使用できます。
figHandles = findobj('Type', 'figure');
図のいずれかに 隠しハンドル がある場合、代わりに関数 findall
を使用できます。
figHandles = findall(groot, 'Type', 'figure'); % Since version R2014b
figHandles = findall(0, 'Type', 'figure'); % Earlier versions
最善の方法の1つは、ハンドルを探す必要がないことです。各Figureを作成するときに、そのハンドルをキャプチャします。
h(1) = figure;
h(2) = figure;
...
ここで開発者の一人が私に言ったように:
あなたはそれらをつかむことになっているので、それらはハンドルと呼ばれます
findall は動作するはずです
handles=findall(0,'type','figure')
ハンドルの質量については、良い答えが得られました。しかし、元の質問の別のヒント-すべての図をファイルに出力します。 publish
オプションを使用できます。