非表示にしたfigu​reが複数ある場合に​おいて,編集対象の「​現在のfigure」​を非表示のまま変更し​たい

26 ビュー (過去 30 日間)
Obo Hirotaka
Obo Hirotaka 2021 年 10 月 9 日
コメント済み: Obo Hirotaka 2021 年 10 月 11 日
figure('visible','off');
コマンドで作成された複数個の非表示figureがある場合において,非表示のまま”現在のFigure”を変更する方法はありますか?
”現在のFigure”の指定に,figure(n)コマンドを使うとウインドウが表示されてしまうので困っています.
  2 件のコメント
Atsushi Ueno
Atsushi Ueno 2021 年 10 月 9 日
function ans = SetTargetFigure_and_Visible_off(fig_handle)
figure(fig_handle);
set(fig_handle,'visible','off');
end
これじゃ駄目ですかね。切り替えたFigureが一瞬だけ表示されます。駄目ですよね。
Obo Hirotaka
Obo Hirotaka 2021 年 10 月 9 日
コメントありがとうございます.そうですね,一瞬でも表示されない手法を探しています.

サインインしてコメントする。

採用された回答

Akira Agata
Akira Agata 2021 年 10 月 10 日
編集済み: Akira Agata 2021 年 10 月 10 日
figure を作成する際にあらかじめ figure ハンドルを取得しておくことで、gcf を使わなくてもそれぞれの figure を操作可能です。例えば、以下のようにすれば 2 つの figure に対するハンドル hFig1, hFig2 を取得できます。
hFig1 = figure("Visible","off");
plot(magic(4))
hFig2 = figure("Visible","off");
surf(peaks)
このあと最初の figure を操作したい場合、gcf の設定を変えなくても hFig1 を操作すれば問題ありません。
もし何らかの理由で、どうしても gcf が指す figure を変更したい場合、以下のように set 関数を使って変更してください(ただし上記のように、あらかじめ figure ハンドルを取得しておく必要があります)。
% gcf が 1 番目の figure を指すように変更
set(groot,'CurrentFigure',hFig1);
  1 件のコメント
Obo Hirotaka
Obo Hirotaka 2021 年 10 月 11 日
うまくいきました.ありがとうございます.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange対話型コントロールとコールバック についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!