Optimiser les performances graphiques

Le 15 mai 2012 je donnais une astuce pour accélérer la création de plusieurs figures

Aujourd’hui je vais vous présenter une astuce pour accélérer le rafraichissement de vos graphiques.

J’ai trouvé un super lien dans la doc MATLAB à ce sujet: Optimizing Graphics Performance

A un moment donné un des conseils donné est « Setting All Modes to Manual« . Et un tableau plus bas donne en effet toutes les propriétés de l’axe à modifier.
Et là je me suis dit « c’est con qu’il n’y ait pas un code tout fait pour le faire! »

Et beh en fait si!
Il suffit de lire la section plus bas : « Update the Object’s Data » qui fournit un exemple et un lien pour l’éditer.

edit ([docroot '/techdoc/creating_plots/examples/doc_perfex']);

voir la sous function ManAxMode

Donc comme conseillé dans la page on fait d’avoir:

figure('Renderer','painters')

puis on utilise cette fonction :

    % This function sets most axes mode properties to manual
    function ManAxMode(h)
    % Do not set CameraViewAngleMode, DataAspectRatioMode,
    % and PlotBoxAspectRatioMode to aviod exposing a bug
    pn = {'ALimMode',...
        'CameraPositionMode','CameraTargetMode',...
        'CameraUpVectorMode','CLimMode',...
        'TickDirMode','XLimMode',...
        'YLimMode','ZLimMode',...
        'XTickMode','YTickMode',...
        'ZTickMode','XTickLabelMode',...
        'YTickLabelMode','ZTickLabelMode'};
    for k = 1:15
        pv(k) = {'manual'};
    end
    set(h,pn,pv)
    end

Et je confirme ça accélère grave !!

Laisser un commentaire