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

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

Sign in to comment.

Accepted Answer

Akira Agata
Akira Agata on 10 Oct 2021
Edited: Akira Agata on 10 Oct 2021
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 Comment
Obo Hirotaka
Obo Hirotaka on 11 Oct 2021
うまくいきました.ありがとうございます.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!