why

Exemple :

>> why

peut retourner la phrase suivante :

To fool the tall good and smart system manager.

Pour ceux qui connaissent Simulink, je dirais que
Why en MATLAB c’est comme le bloc Terminator dans Simulink … ça sert à rien!!!

Vu que la fonction why est éditable, on peut s’amuser à mettre le nom de ses collègues au lieu de Cleve, Jack ,Bill ,Loren …

Voici l’astuce geek savoir pour épater ses potes:

la phrase la plus longue sortie par why est composée de 346 mots , 1782 caractères en tapant:

>>why(3282186255)

Some rich and very smart and young and bald and very young and smart and bald and terrified and rich and terrified and very bald and smart and not very smart and terrified and terrified and tall and smart and not very bald and bald and tall and smart and good and smart and good and rich and smart and young and very tall and young and not excessively smart and terrified and terrified and not very young and bald and smart and bald and very rich and terrified and young and young and terrified and rich and terrified and good and very tall and rich and not excessively young and terrified and young and not very tall and tall and bald and good and tall and smart and young and good and rich and terrified and good and bald and terrified and very tall and tall and good and terrified and not excessively tall and not very bald and young and young and not very good and smart and good and young and good and good and bald and not excessively young and smart and terrified and young and young and young and young and bald and young and good and young and terrified and tall and rich and young and rich and very terrified and terrified and good and very terrified and young and bald and not very good and smart and good and very good and young and young and terrified and young and young and young and terrified and rich and bald and young and good and bald and rich and good and not excessively good and not very rich and young and very bald and young and terrified and terrified and good and rich and young and good and smart and not very tall and good and terrified and very good and very rich and good and tall and good and rich and rich and smart and tall and good and bald and good and rich engineer obeyed some smart and rich very good and not excessively good and bald hamster.

Franchement si tu viens de lire ce post tapes :

>>why(393)

après tout why not ? !!

Submit request from MATLAB Help Menu

En effet avec la Prerelease R2011a j’avais noté que le numéro de téléphone 508-647-7000 indiqué n’était valable que pour les USA:

call support

Bon sinon pensez toujours à avoir ce numéro sous la main :

je ne sais pas si j’ai été lu mais dans la récente version R2011a maintenant ça a changé:

contact r2011a

on nous suggère de trouver le numéro sur leur site web … faut juste trouvé comme indiqué un pc qui a accès à Internet , moi je dis qu’ils auraient pu faire mieux , il n’y pas non plus 100000 bureaux dans le monde !!!

Donc pensez à avoir ce numéro sous la main si vous voulez contacter le support technique en France:

contact mathworks France

Attention à bien épeler vos fonctions!

Si vous tapez ça en R2011a ou dans des versions antérieures:
>> ListboxExample

vous avez ce warning mais MATLAB fait le boulot et lance quand même listboxExample :

Warning: Could not find an exact (case-sensitive) match for ‘ListboxExample’.
D:\DOCUME~1\quefaurs\LOCALS~1\Temp\listboxExample.m is a case-insensitive match and will be used instead.
You can improve the performance of your code by using exact
name matches and we therefore recommend that you update your
usage accordingly. Alternatively, you can disable this warning using
warning(‘off’,’MATLAB:dispatcher:InexactCaseMatch’).
This warning will become an error in future releases.

Bon ça faisait des années qu’on avait ce warning et qu’on nous disait « This warning will become an error in future releases. » Cette fois ci c’est vrai avec la 11b!

Si vous tapez en R2011b :

>> ListboxExample

Vous aurez ce message d’erreur :

Cannot find an exact (case-sensitive) match for ‘ListboxExample’.
Do you want: listboxExample
(in D:\DOCUME~1\quefaurs\LOCALS~1\Temp\listboxExample.m)?

  • Une surprise?

Non car c’est effectivement documenté dans les Release Notes :

error r2011b

  • Mon feedback

Moi je ce que j’aurais aimé c’est que le message d’erreur mette un hyperlink sur :
Do you want: listboxExample
qui permettrait de lancer directement la fonction que … finalement MATLAB a trouvé!
J’avoue franchement que je ne comprends pas l’intérêt d’avoir transformé ce warning en message d’erreur.

Crash dump en ouvrant un GUI

simple_GUI

  • Le bug

Essayez d’ouvrir cette interface maintenant en R2006b:
>>testr

Vous aurez le crash dump suivant:

————————————————————————
Segmentation violation detected at Fri Jul 01 11:03:53 2011
————————————————————————

Configuration:
MATLAB Version: 7.3.0.267 (R2006b)
MATLAB License: **** MATLAB Geek! *****
Operating System: Microsoft Windows XP
Window System: Version 5.1 (Build 2600: Service Pack 3)
Processor ID: x86 Family 6 Model 15 Stepping 11, GenuineIntel
Virtual Machine: Java 1.5.0 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode
Default Charset: windows-1252

Register State:
EAX = dd000000 EBX = dd000000
ECX = 00d17364 EDX = 78622f0c
ESI = 01425180 EDI = 0e8e2da0
EBP = 00d1738c ESP = 00d17364
EIP = 7878d5d1 FLG = 00010286

Stack Trace:
[0] m_interpreter.dll: public: virtual void __thiscall FunctionHandleWorkspaceCI::customLoad(class mcos::COSInterfacePtr,class mcos::COSValue,class mcos::COSDataTypePtr)(0x01e93170, 0x0e6ff8e0, 0x0e6cd260, 4151136) + 401 bytes
[1] mcos.dll: public: virtual void __thiscall mcos::COSClassI::customLoad(class mcos::COSInterfacePtr,class mcos::COSValue,class mcos::COSDataTypePtr)(0x01e93170, 0x0e6ff8e0, 0x00d17394, 4151136) + 89 bytes
[2] mcos.dll:$L144316(0x00d17474, 4067536, 0, 0x00d17488 « Â¨tÑ ») + 116 bytes
[3] mcos.dll: public: virtual class mcos::COSInterfacePtr __thiscall mcos::File::getInterface(unsigned int)const (0x00d17474, 1, 0x01f53aa0 « IM », 0) + 32 bytes
[4] mcos.dll: public: struct mxArray_tag * __thiscall mcos::File::convertCOSInterfaceFromMatrix(struct mxArray_tag const *)(0x0e6fe460, 0x01f53aa0 « IM », 0x0e6fede0, 0x00d1b0ac « Ã´Â°Ã‘ ») + 134 bytes
[5] mcos.dll:struct mxArray_tag * __cdecl mcosConvertFromMATFileArray(struct mxArray_tag const *,struct mxArray_tag const * *)(0x0e6fede0, 0x00d174dc, 0x0e6fede0, 0x0e6feda0) + 142 bytes
[6] mcos.dll:_omLoadOpaque(0x0e6feda0, 0x0e6fede0, 0x00d174dc, 0x01dc1358 « MCOS ») + 24 bytes
…[snip]

  • Le site support de TMW

Bref je me dis il y a forcément une solution technique à ce crash. Je tape donc sur le site de TMW le mot clef « FunctionHandleWorkspaceCI » et je tombe sur la note suivante:
Why do I receive a segmentation violation error if I open a FIG file in MATLAB 7.0.4 (R14SP2) that was created using GUIDE in MATLAB 7.6 (R2008a)? que je m’empresse de tester. Il y a un M-file à télécharger qui permet de corriger ce bug :replacefcnhandles2.m
!
… ouais sauf que ce patch ne corrige rien du tout
Dans mon cas je devais taper:
>>replacefcnhandles2('testr.fig')
et ça me fait toujours le même crash :(

  • Le site MATLAB Answers

Sur MATLAB Answers , je vois que d’autres personnes ont rencontré le même problème :
SEgmentation Violation detected. m_interpreter.dll errors
… mais aucune solution trouvée

  • La suite

Bon beh c’est légèrement embêtant quand on sait que certains clients sont toujours sous Windows 2000 et que cet OS n’est pas compatible avec les dernières releases MATLAB. En gros mon interface graphique est non compilable , donc non déployable , non utilisable …
Comme d’hab je vous tiendrai au courant de la résolution de ce bug qui est maintenant entre les mains du support technique de MathWorks.

  • Concernant le bug listbox de la R2011b

Les équipes support TMW ont pu reproduire le bug sur la R2011b que je vous ai décris dans ce post:1er bug trouvé sur la R2011b Prerelease
Idem je suis en attente d’une solution que je vous partagerais avec grand plaisir!

Tag via Property Inspector n’aime que l’alphabet

  • Exemple

Je fais un pushbutton avec le guide et je veux éditer le champ tag via le Property Inspector :

simple pushbutton matlab

Si vous tentez de changer le tag pushbutton1 avec des chaines contenant autre chose que des lettres comme le signe + , – mais aussi avec un espace :

tag matlab sign

une fois que vous tapez entrer , le tag reprend toujours sa valeur par défaut : pushbutton1.

init tag matlab

  • Réponse de TMW

tech support answer

En fait il y aussi le même souci si le tag a un signe moins en plein milieu de la chaine.

  • Mon analyse

Première question : Où est indiquée cette limitation dans la doc?

Deuxième question : pourquoi c’est possible d’affecter un tel tag tel en ligne de commande?

>> h1 = uicontrol(‘Style’,’pushbutton’);
>> get(h1,’tag’)

ans =

 »

>> set(h1,’tag’,’test-25′)
>> get(h1,’tag’)

ans =

test-25

Et oui depuis le Command Window ça marche ;) Bon beh voilà bug ou pas je ne sais pas mais j’attends avec impatience une réponse du développement!

La TO DO liste de TMW

Et si on les aidait ?!!

  • deployprint et son fameux mystère :

Pour le MATLAB Compiler par exemple , on pourrait les aider à résoudre ce mystère:

deployprint

J’adooooooooore !

  • for-loop à remplacer

Un bon exercice MATLAB à faire , remplacer la boucle for par cellfun dans is2D:

is2D

qui s’y colle?!!

Y en une autre pour ceux que ça intéresse dans la fonction non documentée setupplotbrowser:

setupplotbrowser

C’était la pensée du jour ;)

Bug R2011b

Quand on clique sur un sous chapitre dans le panel Contents de la doc MATLAB, le lien cliqué/sélectionné n’est pas surligné.

  • Reproduction Steps:

1) Tapez dans la doc : About the List Master Example

2) Cliquez sur Contents :

contents_r2011b

3) Essayez de cliquer par exemple sur le 5ème sous chapitre : Add an « Import from File » Option to List Master

testmatlab

Le sous chapitre apparait bien dans le panel de droite mais le lien dans le panel Contents lui ne l’est pas
, moi je m’attends à ce que ce lien soit surligné en bleu dans le panel contents, en tout cas en R2011a c’était comme ça. Au lieu de ça c’est le chapitre parent qui reste surligné:

bug r2011b

Bug que j’ai remonté et qui a été reproduit par le support MathWorks.

Help des programmes MATLAB en gras

Exemple avec une fonction trop cool qui s’appelle … cool dans le répertoire \toolbox\matlab\graph3d :
>>edit cool
affiche

cool

Comme on peut le constater le mot cool est écrit en majuscule dans le help du fichier.

Et beh en R2011b ça tout son intérêt , lorsqu’on tape dans le command Windows :
>>help cool

helpcool

magique ! le mot cool est écrit en gras et en minuscules !

2 remarques:

  • Je n’ai pas trouvé de doc associée à cette nouvelle fonctionnalité.
  • Ça ne marche que si le mot est écrit en majuscules dans le help … dommage non?