Guide des bonnes pratiques de codage Matlab

De POLR
Sauter à la navigation Sauter à la recherche

Cette page est en construction et nécessite votre contribution. N'hésitez pas à proposer des règles ou des trucs, à les expliquer et à les illustrer avec des exemples. La structure de cette page se clarifiera au fur et à mesure que son contenu prendra forme. N'hésitez à vous servir des questions ci-dessous comme points de départ et à en suggérer de nouvelles.

Quel nom donner à ma fonction?

Quel nom donner à une variable?

Équations

- Le nom pour les variables qui font directement référence à des équations mathématiques ou a des constantes bien établis devrait s'y apparenter le plus possible et être courts (ex: g pour la gravité, u, v, w pour les courants, N pour la concentration de nitrate etc);

- Utilisez l'écriture complète des lettres grecques (ex: lambda, phi, rho);

- Utilisez la barre de soulignement uniquement pour faire référence à une variable qui s'exprime avec un indice (ex: rho_0, sigma_t);

- Si le code est basé sur des équations tirées d'un article particulier ou d'un livre, respectez le plus possible la convention utilisée dans le document de référence;

- Exprimez les dérivées avec la lettre 'd' (ex: dt pour le pas de temps ou pour désigner un interval d'échantillonnage, dx pour un pas de grille, dTdx pour le gradient horizontal de température);

- Pour les indices d'une grille spatiale utilisez les indices i, j, et k où i et j représente l'espace horizontale et k l'espace vertical. Si nécessaire, ajouter d'autres lettres à l'indice mais en commençant toujours par i, j, ou k (ex: iGrille1, iGrille2)

- Pour l'indice temporelle utilisez la lettre n, ou au besoin une variable qui commence par la lettre n.

Autres variables

- Pour toutes les variables qui ne font par référence directement à une équation mathématique utilisez une nom de variable qui exprime le plus clairement possible sa fonction mais en restant succinct.

- Utiliser le convention du "lower Camel Case" c'est-à-dire séparez les mots qui forment une même variable avec une lettre majuscule mais en commençant par une minuscule (ex:samplingFrequency, fileName).

- Comme mentionné plus haut, réservez l'utilisation de la barre de soulignement seulement pour faire référence à un indice d'une variable mathématique. Donc, ne pas nommer une variable sampling_frequency mais plutôt respectez le standard du lower Camel Case;

Comment bien rédiger l'aide?

Utilisez le canevas suivant pour l'en-tête de vos codes. Ce canevas a été produit par Denis Gilbert (IML).

function [output1,output2] = function_name(input1,input2,input3)
%FUNCTION_NAME - One line description of what the function or script performs (H1 line)
%Optional file header info (to give more details about the function than in the H1 line)
%Optional file header info (to give more details about the function than in the H1 line)
%Optional file header info (to give more details about the function than in the H1 line)
%
% Syntax:  [output1,output2] = function_name(input1,input2,input3)
%
% Inputs:
%    input1 - Description
%    input2 - Description
%    input3 - Description
%
% Outputs:
%    output1 - Description
%    output2 - Description
%
% Example: 
%    Line 1 of example
%    Line 2 of example
%    Line 3 of example
%
% Other m-files required: none
% Subfunctions: none
% MAT-files required: none
%
% See also: OTHER_FUNCTION_NAME1,  OTHER_FUNCTION_NAME2
 
% Author: FirstName FamilyName
% Work address
% email: 
% Website: http://www.
% May 2004; Last revision: 12-May-2004

%------------- BEGIN CODE --------------

Enter your executable matlab commands here

%------------- END OF CODE --------------

Où met-on les commentaires?

Quand doit-on mettre des espaces?

Dois-je documenter en anglais ou en français?

Documents pertinents

Le document MatlabStyle5p1 en est un duquel on pourrait s'inspirer en l'adaptant à l'océanographie.