Voilà un T-shirt TMW collector!
Sur la face qu’on ne voit pas , The MathWorks est écrit sur 3 lignes :
The
Math
Works
et c’est ça qui rend ce T-shirt collector
BIG BIG issue R2012b – Windows XP
EDIT du 19 Décembre-2012 bug corrigé dans la Prerelase 2013a
Alors si vous êtes en Windows XP Service Pack 3 et que vous avez téléchargé la R2012b , attention attention! Je crois avoir trouvé le bug du siècle avec EXIST après un UIGETFILE!
Un truc de taré avec un code simple à tester sur n’importe quelle machine avec la R2012b installée.
Les fichiers trademarks.txt et patents.txt étant shippés avec tourtes les releases MATLAB.
Bug reproduit plusieurs fois sur plusieurs machines Windows XP.
Dans toutes les autres versions de MATLAB exist retourne comme attendu ZERO.
Sous Linux 12b le code raussi retourne ZERO.
Moi j’ai eu ce souci avec des MAT-files qui n’étaient pas sur mon path … alors vous voyez le truc : MATLAB vous dit que le fichier existe parce via un uigetfile il l’a vu , mais ensuite vous ne pouvez rien faire avec ce fichier : ni l’éditer , ni l’effacer , ni appender des data … bref bug bug bug!!!!
Lorsque je testais la R2012b beta j’avais trouvé la feature Check Code Generation Readiness en faisant clic-droit sur un M-file (ici soma.m) :
Rappelez vous cet article Exemples faux de la doc où je remontais le fait que la doc de filemarker était erronée depuis la R2006b. Je disais également que j’avais remonté cette erreur au support de TMW.
Bon beh en 12b c’est un peux mieux mais ce n’est pas encore ça !!!
voivi ce qu’on peut lire dans la doc 12b :
You can use the following command on any platform to get the help text for the local function pdeodes defined in pdepe.m:
helptext = help([‘imwrite‘ filemarker ‘validateSizes’])
Ok l’exemple marche bien cette fois ci … mais par contre la phrase juste avant n’ a pas été mise à jour , ça parle toujours de pdepe …
Elle est sortie un jour assez particulier le 11 Septembre . Voici les nouveautés:
Nouvelles Fonctionnalités R2012b
Sans aucun rapport , vous aurez noté le nouveau look du blog. La transition ne s’est pas bien passée comme plusieurs d’entre vous me l’ont fait remarquer . Les articles qui étaient écrits sur plusieurs pages n’apparaissent plus. En effet seule la première page est lisible
Par exemple cet article Ordre de l’alphabet n’a plus aucun sens vu qu’on n’a pas la réponse qui normalement apparaissait dans la page 2. …
… sur le forum : Nouveau système de blogs de Developpez.com on m’a dit il y a quelques jours que ce problème devrait bientôt être réglé.
Désolé pour ce désagrément.
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.
voir la sous function ManAxMode
Donc comme conseillé dans la page on fait d’avoir:
puis on utilise cette fonction :
Et je confirme ça accélère grave !!
Donc voilà la formule magique qui marche quelquesoit le vecteur d’entrée:
On va mixer les fonction sum, arrayfun et la commande bien pratique isequalwithequalnans
A = [1 2 33 4 33 33 5 33 6 7 8 9 NaN NaN]
counter = sum(arrayfun(@(x)isequalwithequalnans(NaN,x),A))counter =
2
qui retourne bien 2.
Et ça marche aussi avec 33 comme précédemment:
retourne bien 4
voili voilou le tips and trick MATLAB geek du jour!
Avec tout ça vous pouvez maintenant sans problème calculer le nombre de répétitions d’une valeur dans n’importe quel vecteur !
On pourrait faire :
numel(find(A==33))
ou
numel(A(A==33))
bref pleins de façons de le faire . Moi je préfère nnz (Number of nonzero matrix elements)
A = [1 2 33 4 33 33 5 33 6 7 8 9]
counter = nnz(A==33)
counter =4
Prochainement je vous montrerais une solution plus robuste qui marche aussi avec les NaN … suspense !
© 2000-2020 - www.developpez.com
Partenaire : Hébergement Web