matlab(別の関数によって生成された)に9つの開いている図があり、それらすべてをファイルに印刷したいと思います。MATLABで開いているすべての図形のハンドルを取得する方法を知っている人はいますか?
私は知ってgcf
いますが、それは私が望むことをしていないようです。
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つは、ハンドルを探す必要がないことです。各フィギュアを作成するときは、そのハンドルをキャプチャします。
h(1) = figure;
h(2) = figure;
...
ここの開発者の一人が私に言ったように:
あなたがそれらを保持することになっているので、それらはハンドルと呼ばれます
findallは機能するはずだと思います
handles=findall(0,'type','figure')
ハンドルの質量については、すばらしい答えが得られます。しかし、元の質問のもう1つのヒントは、すべての図をファイルに印刷することですpublish
。図やハンドルを扱わなくても、オプションを使用できます。