placeFig, a FigureGrid command aware of screen size
Version 5.1.0 (229 ko) par
Massimo Ciacci
A useful command to create a figure-grid of matlab figures tidily distributed across the screen
function placefig_Normalized(fig,m,n,k)
% PLACEFIG(fh,m,n,k) - puts figure fh in position k of a (m x n) array of figures on the screen.
% ------------------------------------
% placefig_Normalized(fig,m,n,k)
% ------------------------------------
% m x n picture matrix, set at location k, row-wise-counting
% k (m=2,n=3) x(n) y(m)
% 1 2 3 1 2 3 1 1 1
% 4 5 6 1 2 3 2 2 2
%
% Figure is resized to fit in the viewport at the indicated location k
%
% EXAMPLE: put figure to cover top half of the screen
% figure(31);
% placefig(31, 2,1,1);
%
% EXAMPLE: put figure to cover top/left quarter of the screen
% figure(31);
% placefig(31, 2,2,1);
%
% EXAMPLE: grid of 2x3 figures fill up first 4
% figure(31);figure(32);figure(33);figure(34);
% placefig(31, 2,3, 1);
% placefig(32, 2,3, 2);
% placefig(33, 2,3, 3);
% placefig(34, 2,3, 4);
%
% ------------------------------------
% Set-up settings calls (one argument)
% ------------------------------------
% placefig_Normalized(1)
% placefig_Normalized(0)
% placefig_Normalized(-k)
% ------------------------------------
% placefig_Normalized(-k) : Select monitor number k
% placefig_Normalized(1) : no margins top and bottom%
% placefig_Normalized(0) : reset margins top and bottom
%
% Issue about using pixels with monitor beyond nr 1:
% -------------------------------------------------
% If you specify a monitor other than primary one (-1), it will go to pixel units;
% If you connected|disconnected HDMI without restarting Matlab afterwards
% it will go out of screen.
% Solution 1: placefig(-1) will reset main monitor and overcome this but go to monitor 1
% Solution 2: restart matlab after you change the nr monitors connected
% -------------------------------------------------
%
%
% rev.5.1, Massimo Ciacci, July 11, 2023
% note: better to place the figure immediately after creation, before plotting onto it, it works faster.
%
% note: since matlab is uncapable to refresh monitor status after plugging or unplugging monitors
% we cannot rely on pixel size that much, thereby we changed to normalized units, in the hope
% that the underlying Java scaler is able to keep up to date and avod tiny figures on Laptop displays.
%
% this however won't work with secondary monitors.
%
% =================================================================================================
% #### SUGGESTION: IN WINDOWS, DISPLAY SETTINGS, SET MAIN MONITOR = YOUR EXTERNAL LARGE SCREEN
% =================================================================================================
% If you have your laptop as main monitor accept the consequences (tiny figures on laptop screen)
Citation pour cette source
Massimo Ciacci (2026). placeFig, a FigureGrid command aware of screen size (https://fr.mathworks.com/matlabcentral/fileexchange/72807-placefig-a-figuregrid-command-aware-of-screen-size), MATLAB Central File Exchange. Extrait(e) le .
getScreenSizeFunc is based on Ulrik' answer in : https://nl.mathworks.com/matlabcentral/answers/312738-how-to-get-real-screen-size
Compatibilité avec les versions de MATLAB
Créé avec
R2016b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS LinuxCatégories
En savoir plus sur Annotations dans Help Center et MATLAB Answers
Tags
Remerciements
A inspiré : PlotLogCompand
Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
PlaceFig_v5_1
| Version | Publié le | Notes de version | |
|---|---|---|---|
| 5.1.0 | Support 2nd or Nth monitor for output. |
||
| 5.0.0 | No need to fiddle with pixel size, rather use normalized units. |
||
| 4.0.0 | Cleaned up code, added a ultra-tall flag toggle to reduce margins. |
||
| 3.0.0 |
