Filter löschen
Filter löschen

Show separate figures next to each other, not using "subplot"

22 Ansichten (letzte 30 Tage)
monkey_matlab
monkey_matlab am 15 Dez. 2016
Bearbeitet: Vivi am 17 Mär. 2023
Hello,
I wanted to know if there is a simple way to show multiple separate figures next to each other, without overlap. I tried using the following code:
clc;
clear;
close all;
f1 = figure('units','normalized','position',[0 0 .3 .3]);
f2 = figure('units','normalized','position',[0 0 .3 .3]);
movegui(f2,[300,0]);
f3 = figure('units','normalized','position',[0 0 .3 .3]);
movegui(f3,[600,0]);
I know that I can modify the "movegui" points, but I wanted to know if another solution exist, where I do not have to manually put in the points, and the separate figures will automatically appear next to each other without overlap.
Thanks.

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 15 Dez. 2016
"I wanted to know if there is a simple way to show multiple separate figures next to each other, without overlap."
No.
  2 Kommentare
Walter Roberson
Walter Roberson am 15 Dez. 2016
It is not difficult to set the Position of the figures:
figs = [f1, f2, f3]; %as many as needed
nfig = length(figs);
frac = 1/nfig;
for K = 1 : nfig
old_pos = get(figs(K), 'Position');
set(figs(K), 'Position', [(K-1)*frac, old_pos(2), frac, old_pos(4)]);
end
but I would not call that "simple".
Vivi
Vivi am 17 Mär. 2023
Bearbeitet: Vivi am 17 Mär. 2023
Rewrite Walter Roberson's answer,
%
% Reset the figure window location. Horizontal
%
figs = [fig_1, fig_2, fig_3, fig_4]
nfig = length(figs);
for K = 1 : nfig
old_pos = get(figs(K), 'Position')
set(figs(K), 'Position', [(K-1)*old_pos(3) old_pos(2) old_pos(3) old_pos(4)]);
end

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Graphics Object Programming finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by