No more MATLAB stickers ;)

DVD MATLAB R2010b

snif snif , pas d’autocollant MATLAB.

Alors j’ai réagi le 8 octobre 2010 , en postant sur le MATLAB Central ma déception:
Thread Subject: No MATLAB stickers shipped with the DVD anymore :(
Mes anciens collègues de TMW m’ont dit que mon post n’était pas passé inaperçu par TMW et que je n’étais pas le seul MATLABER à me plaindre de ne plus avoir de stickers MATLAB….rassuré!!!

Donc finger crossing , et espérons que pour la R2011a , on retrouvera notre cher MATLAB sticker:

Matlab sticker

Ci-dessus le sticker MATLAB collé sur la tour de mon PC à mon taf.

EDIT du 20/10/2010 : Je vais avoir mes L-shaped membrane stickers : lire la catégorie « pensée MATLAB du jour »

La chasse au typo

C’est ainsi que le 8 avril 2010 , j’ai remonté au support TMW que les exemples pour la doc de uitable en R2010a ne correspondaient pas aux figures affichées.

uitable_examples_r2010a

On s’attend en effet à avoir dans la première figure que les lignes s’appellent First , Second et Third , c’est ainsi qu’est défini la propriété Rowname :

rnames = {'First','Second','Third'};

A la place c’est 1 ,2 et 3 . Donc la figure affichée ne correspond pas au code donné en exemple.

Et dans la seconde figure, on devrait avoir aucun Rowname vu qu’il est mis à [] :
RowName’,[])

mais on a encore 1 , 2 et 3 .

Faire un joli rapport de stage avec MATLAB

Exemple :

Voici un petit code qui fait un sinus. Désolé pour le typo , du style à la ligne 4 il manque la lettre i à Initialisation !
J’ai entouré en bleu les doubles pourcentages , c’est ce qui permet de faire du Cell mode.
Et en rouge l’icône sur laquelle je peux appuyer pour publier mon code en HTML.

publish et cell mode

Donc si je clique sur le bouton  » Publish » , MATLAB m’affiche une jolie page web :

published HTML

Après on peut s’amuser à tester les différents format de sortie, dire à MATLAB si on veut qu’il évalue le code ou non … moi dans ce post ce que je voulais vous montrer c’est l’inverse de la fonction publish : grabcode

Comme son nom l’indique , grabcode va graber (attraper) le code . Et là ça devient intéressant de voir comment on peut faire de jolis rapports .

strmatch R2010b : M-lint versus doc

Pour cela rien de plus simple il suffit de chercher dans la doc la phrase « will be removed in a future release. » :

>>lookfor(‘will be removed in a future release.’,’-all’);

Le -all me permet de chercher la phrase dans tous les sujets de la doc.
ce qui retourne dans le Command Window:

  • mmreader: MMREADER will be removed in a future release. Use VideoReader instead.
  • avifinfo: AVIFINFO will be removed in a future release. Use MMREADER
  • aviinfo: AVIINFO will be removed in a future release. Use MMREADER
  • aviread: AVIREAD will be removed in a future release. Use MMREADER
  • wavplay: WAVPLAY will be removed in a future release. Use AUDIOPLAYER instead.
  • wavrecord: WAVRECORD will be removed in a future release. Use AUDIORECORDER
  • codetoolsswitchyard: This function will be removed in a future release.
  • maxNumCompThreads: maxNumCompThreads will be removed in a future release.
    Please remove
  • exifread: will be removed in a future release. Please use IMFINFO instead.
  • str2rng: STR2RNG will be removed in a future release.
  • wk1const: WK1CONST will be removed in a future release.
  • wk1finfo: WK1FINFO will be removed in a future release.
  • wk1read: WK1READ will be removed in a future release.
  • wk1wrec: WK1WREC will be removed in a future release.
  • wk1write: WK1WRITE will be removed in a future release.
  • intwarning: INTWARNING will be removed in a future release.
  • delaunay3: DELAUNAY3 will be removed in a future release. Use DelaunayTri instead.
  • dsearch: DSEARCH will be removed in a future release.
  • griddata: these options will be removed in a future release.
  • griddata3: GRIDDATA3 will be removed in a future release. Use TriScatteredInterp instead.
  • tsearch: TSEARCH will be removed in a future release.
  • bessel: will be removed in a future release. Use BESSELJ instead.
  • findstr: FINDSTR will be removed in a future release. Use STRFIND instead.
  • isstr: ISSTR will be removed in a future release. Use ISCHAR instead.
  • setstr: SETSTR will be removed in a future release. Use CHAR instead.
  • str2mat: STR2MAT will be removed in a future release. Use CHAR instead.
  • strmatch: STRMATCH will be removed in a future release. Use STRNCMP instead.
  • strvcat: STRVCAT will be removed in a future release. Use CHAR instead.

Il y a donc un paquet de fonctions à surveiller … ce qui me fait penser au passage qu’en plus de whatsnew , TMW pourrait créer la commande whatsold !!!

Donc en R2010b (MATLAB Version 7.11), c’est le choc!!! strmatch va disparaitre prochainement!!!

Alors je me dis , si ça se trouve TMW a bien bossé et propose via le M-lint un autofix . suspense …

Choper l’URL

D’ailleurs au passage je pense que 90% des questions posées sur le forum ont leur réponse dans la doc MATLAB ou sur le site du support technique de The MathWorks. … RTFM comme on dit souvent ;)

Alors pour choper, obtenir l’URL de la doc , rien de plus simple , le trick a lieu dans le Help de MATLAB.

Il suffit en effet d’aller dans le menu View et sélectionner « Page Location ».
Attention cette fonctionnalité View -> Page Locations n’est disponible que depuis MATLAB 7.4 (R2007a)

Cela vous ouvre une boite intitulée « Help Page Location ». Les 2 liens indiqués permettent d’accéder directement à la page en cours.

Le premier edit text est une commande à taper dans MATLAB utilisant la fonction web . Attention comme c’est indiqué, cette commande n’est sure de fonctionner que pour la version MATLAB dans laquelle vous avez effectuée cette opération.
Le deuxième lien c’est celui que j’utilise le plus pour indiquer l’adresse web où trouver l’info, elle permet aussi aux matlabers avec des vieilles versions MATLAB de voir si la doc a été mise à jour.

view page location

Donc en R2010b pour accéder à la doc ci-dessus  » Getting the Link to a Page« , il suffirait de taper dans MATLAB

>>web([docroot '/techdoc/matlab_env/bsehcm8.html#br91vmv-1'])

ou alors de taper dans son navigateur Internet:

http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_env/bsehcm8.html#br91vmv-1

MATLABCurrent au lieu de Matlab Current

Dans le chapitre « Source Control Interface » à la section Getting the Latest Version of Files for Viewing or Compiling , un espace manque entre le mot MATLAB et le mot Current dans la phrase :

In the MATLABCurrent Folder browser, select the folders or files that you want to get.

La preuve en image :

source control

Cette coquille a été introduite avec la R2009b. En effet avec MATLAB 7.8 (R2009a) , le mot Directory remplaçait le mot Folder:

In the MATLAB Current Directory browser …

et j’ai comme d’hab remonté ce bug au support TMW.

Faire un smiley

[x,y] = meshgrid(-8:0.1:8,-8:0.1:8);

% Equation de taré!! :
Z = exp(-(x.^2+y.^2-32).^2) + exp(-(x+2).^4-(y+2).^4)+exp(-(3.*x+6+0.5.*y).^4-(y-2).^4) + exp(-(x.^2+y.^2-16).^2).*(atan(50.*x-40)/pi+0.5) + exp(-(8.*x.^2+y.^2-48).^2).*exp(-2.*x.^2);

surf(x,y,Z) % un peu de surf

shading interp % un shading obligatoire

view(84,86) % on met la vue qui va bien
set(gca,’visible’,’off’) % les axes servent à rien pour le smiley
colormap hot% moi j’adore ce qui est hot !!!

et voilà la figure qu’on obtient:

smiley MATLAB

Trop de la balle non?!

Je sens que ça annonce une belle série de délires graphiques avec MATLAB … après nous on est geek MATLAB jusqu’au bout !

Symbolic = fun

Pretty:

pretty comme son nom l’indique ça va afficher quelque chose de joli:

pretty

Simplify:

simplify qui comme son nom l’indique simplifie les expressions symboliques :

simplify

La démo Symbolic Matrix Computation utilise justement pretty et simplify.

VPA:

vpa pour Variable Precision Arithmetic qui permet d’afficher n’importe quel nombre avec la précision désirée , exemple pi avec 780 chiffres après la virgule :
vpa pi

LaTex :

latex qui permet de représenter en LaTeX une expression symbolique , ici avec la fontion taylor:

taylor latex

Fortran:

fortran qui retourne le code Fortran d’une expression symbolique. Le même exemple qu’avec la fonction latex donnera:

fortran

Donc forcément ces noms sont efficaces , rien à voir par exemple avec la fonction TriScatteredInterp qui est conseillée d’utiliser depuis la R2009b (MATLAB 7.9) à la place de griddata. Franchement TriScatteredInterp je me déchire tout le temps pour l’écrire, heureusement qu’il y a la tab complétion dans MATLAB!!!