Le big deal

  • Les exemples de la doc ne sont pas un bon deal!

le seul truc que je reproche c’est la documentation de deal (beh oui!!!) qui ne donne pas des exemples qui feraient tilt à l’utilisateur MATLAB :

En effet si vous tapez donc : >>doc deal
les 3 exemples fournis ne montrent pas clairement dans quels cas on peut l’utiliser.
En revanche le help lui est plus intéressant: >>help deal

D’où des fois l’intérêt de taper doc et help :) mais ça c’est encore une autre histoire .

Donc pour vous montrer la puissance et l’utilité de cette fonction , regardez plutôt mes 2 exemples ci-dessous :

  • Initialiser des matrices identiques

Par exemple il doit vous arriver souvent d’initialiser au début de vos codes des matrices :

>>A = zeros(3);
>>B = zeros(3);
>>C = zeros(3);
>>D = zeros(3);

En une seule ligne de code (oui oui monsieur une seule ligne )vous pouvez écrire:

[A B C D ] = deal(zeros(3));

Et ça en tant que MATLAB Geek on kiffe bien de raccourcir son code ! Bon ensuite il faudrait faire des tests de performance (profiler) pour voir si ça vaut la peine.

  • Récupérer les noms des fichiers d’un répertoire

Autre exemple on est souvent amené dans ses codes à faire des dir pour récupérer la liste des fichiers présents sous un répertoire donné.

Si on veut connaitre le contenu du répertoire racine où est installé MATLAB , on taperait:
>>direc = dir(matlabroot)

Ensuite pour récupérer dans une cellule tous les fichiers, une des solutions serait de faire une boucle for comme suit:

for ii=1: numel (direc)
filenames{ii} = direc(ii).name;
end

en une seule ligne de code vous pouvez remplacer cette for-loop par deal :

[filenames{1:length(direc),1}] = deal(direc.name);

Comment c’est top de chuinter une boucle for dans un code MATLAB!!

  • Quand utiliser deal?

Si vous tapez direc.name de l’exemple ci-dessus vous verrez pleins de valeurs ans s’afficher dans le Command Window de MATLAB.
Beh voilà moi dès que je vois ça, je sais que je peux récupérer toutes ces sorties en utilisant deal!

Loren elle dans son blog l’utilise pour échanger les valeurs des variables , j’avoue que je n’aurais jamais pensé à cette utilisation !

Bonne année geekienne!

Laisser un commentaire