IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Ajouter une fonction au Matlabroot


Sujet :

MATLAB

  1. #1
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par défaut Ajouter une fonction au Matlabroot
    Bonjour

    La question est simple, mais assez informulable pour une recherche Google (ou autre).

    J'en ai marre de souvent taper les 3 lignes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    close all
    clear all
    clc
    quand j'ai envie de nettoyer le bazar. J'ai donc créé un fichier nettoyage.m tout simple qui contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function nettoyage
    clc
    clear all
    close all
    J'aimerais pouvoir l'appeler dans la ligne de commande en tapant nettoyage mais j'aimerais que ça soit indépendant du répertoire courant.

    Il m'a semblé en parcourant la doc (sans chercher ça en particulier, c'était au hasard de mes diverses investigations ^^) qu'il existe un truc qui doit s'appeler matlabroot où il cherche s'il connait la fonction appelée.


    Laquelle est donc très simple : dans quel dossier dois-je placer mon fichier SVP ?


    Merci d'avance!

  2. #2
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Par défaut
    Bonjour,

    Une solution peut consister à ajouter le répertoire contenant ta fonction dans le path de MATLAB (avec la commande ADDPATH) dans le fichier de lancement (matlabrc.m si je me trompe pas).
    Bon je suis pas sur que se soit très recommandé mais ca se fait...

    Bonne apm,
    Duf

  3. #3
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Plutôt dans un fichier startup.m à placer dans le dossier work ou dans le dossier dans lequel MATLAB s'ouvre

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par défaut
    Merci à vous !


    (EDIT : la technique n'est pas tout à fait valable, lisez la suite pour le comprendre ^^)

    J'ai cherché les 2 fichiers que vous m'avez proposé. Entre autre sur cette page, on peut lire que le fichier matlabrc.m n'est effectivement pas fait pour etre modifier : il est reservé a The MathWorks et aux administrateurs. Startup.m est fait pour l'utilisateur, donc pour ce que je voulais faire. J'ai galéré à savoir où le mettre : ce n'est pas à la racine du dossier Matlab, mais dans le sous-dossier /bin (en tout cas dans mon cas) : c'est lui qui contient matlab.exe.


    Pour celles et ceux que ça intéressent, voilà ma technique :

    - dans le dossier /bin, j'ai mis le fichier startup.m suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    chemin = [matlabroot '\myLib'];
    addpath( chemin );
    disp 'Startup.m a ete execute'
    - A la racine du dossier Matlab, j'ai créé un dossier myLib où je peux mettre mes fichiers .m personnels. Pour l'instant, je n'y ai mis que mon fichier de nettoyage, contenant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    clc
    clear all
    close all
    disp 'C''est propre maintenant'
    La balise function que j'avais mis ci-dessus semble inutile.

    - En lançant Matlab, on peut effectivement voir Startup.m a ete execute

    - On tape nettoyage dans l'invite de commande et ça marche.





    Le tour est joué


    Merci bien

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par défaut
    .....

    En fait c'est pas totalement résolu.

    Ca marche si on double-clique directement sur le fichier matlab.exe.

    Mais si on utilise, un raccourci vers ce même fichier, j'ai l'impression qu'il n'éxécute pas startup.m (j'ai pas le retour de mon disp, l'appel nettoyage ne marche pas...)

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Moi je redis qu'il faut mettre le fichier startup.m dans work.
    Ça marchera quelque soit le répertoire où tu te trouves quand tu lanceras MATLAB car le répertoire work est dans le path par défaut de MATLAB.

  7. #7
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par défaut Gui Interface
    (entre temps je suis rentré chez moi, ce n'est plus la même version de Matlab ^^)

    J'ai créé un dossier work (j'en n'avais pas) et j'y ai mis mon fichier startup.m, mais cela n'a pas fonctionné.

    J'ai donc tapé doc path dans l'invite de commande, on y trouve qu'il y a une "GUI alternative" pour définir les chemins que Matlab utilise (voir l'aide a propos de Search Path pour ceux que ça intéresse ). Il suffit donc de faire Start / Desktop Tool / Path. Il suffit d'ensuite faire un Add Folder du dossier souhaité. Plus de fichier startup.m comme cela, donc quelle que soit la façon dont je lance Matlab, ça marche.


    Je pense que cette fois la balise est bonne

    Merci à vous.


    PS : j'ai trouvé comme mettre la balise "résolu"

    Note : A priori, mon problème de raccourci restait entier, j'avais juste contourné le problème J'ai donc investigué un peu plus. work n'était pas dans mon path, ça ne risquait pas de marcher... En l'ajoutant, ça marche niquel. Le fichier startup.m doit un dans le path de Matlab, et non dans le dossier où Matlab s'éxécute comme je l'avais compris..

  8. #8
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Citation Envoyé par Bktero Voir le message
    J'ai créé un dossier work (j'en n'avais pas) et j'y ai mis mon fichier startup.m, mais cela n'a pas fonctionné.
    Bizarre que tu n'aies pas de dossier work...normal dans ce cas que cela n'ait pas fonctionné.

    Citation Envoyé par Bktero Voir le message
    J'ai donc tapé doc path dans l'invite de commande, on y trouve qu'il y a une "GUI alternative" pour définir les chemins que Matlab utilise (voir l'aide a propos de Search Path pour ceux que ça intéresse ). Il suffit donc de faire Start / Desktop Tool / Path. Il suffit d'ensuite faire un Add Folder du dossier souhaité. Plus de fichier startup.m comme cela, donc quelle que soit la façon dont je lance Matlab, ça marche (même si mon problème de raccourci reste entier, j'ai juste contourné le problème ).
    Oui mais...personnellement cela me dérange car cela modifie un fichier de MATLAB (le fichier pathdef.m) et c'est mal.
    Là tu es chez toi c'est cool.
    Si au boulot tu as un MATLAB réseau (partagé et donc géré par un admin) tu ne pourras pas faire ça car normalement tu n'auras pas les droits d'accès sur le fichier.
    Enfin si cela te va tant mieux


    Citation Envoyé par Bktero Voir le message
    PS : je ne sais toujours pas mettre de balise "resolu"
    Ce n'est donc pas toi qui l'a mis ?
    Le bouton ressemble à ça et se trouve en bas de la page à gauche

  9. #9
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par défaut
    @Caro-Line : j'ai fait des éditions de mon message pendant que tu tapais le tien


    Pour la modification du path et des droits d'accès, merci de me le préciser, quand je retournerai au boulot lundi, je saurais à quoi m'attendre. On a une licence réseau, je ne sais pas ce que je pourrais modifier. J'espère qu'il y aura un dossier tel que work pour y mettre mes fichiers


    EDIT : la documentation sur le userpath précise que c'est le premier répertoire où cherche les fonctions. J'ai donc essayé d'y placer mon startup.m et ça marche (logique ).

    Penses-tu qu'on puisse librement modifier le userpath Caro-Line ?

  10. #10
    Membre Expert
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Moi je redis qu'il faut mettre le fichier startup.m dans work.
    Ça marchera quelque soit le répertoire où tu te trouves quand tu lanceras MATLAB car le répertoire work est dans le path par défaut de MATLAB.
    Caro juste pour info, ça a changé depuis la R2007a. En R2007a le repertoire work est mis à la fin du path MATLAB alors qu'en 6b il était au début. A partir de la R2007a, MathWorks recommande donc de mettre son startup ailleurs vu que le repertoire work était voué à disparaitre. Ce qui est le cas dans les dernières versions de MATLAB.
    Changes to Startup Directory (Folder) and Startup Options for MATLAB Application on Windows

  11. #11
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Ah OK, merci pour l'info .
    Mais je ne comprends pas très bien du coup ils disent que Documents\MATLAB est mis dans le path, mais c'est en relatif ?
    Je suppose qu'il ne modifie pas pour chaque utilisateur le path par défaut ?


    Sinon du coup, avec cette nouvelle information, Bktero, tu devrais donc mettre ton fichier startup.m dans ton répertoire Documents\MATLAB si ta version est supérieure à la R2007a.

    Ceci expliquant surement pourquoi au boulot tu as un répertoire work et pas chez toi.

  12. #12
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 494
    Billets dans le blog
    1
    Par défaut
    Oui c'était une version 2009 que je n'avais pas de work. Dans le userpath, ça marche très bien comme je l'ai dit dans mon dernier post.

    D'ailleurs, tu n'as pas répondu à ma dernière question : si on ne peut pas modifier librement le path de Matlab, peut-on le faire librement pour le userpath ou risque t-on de rencontrer les mêmes problèmes ?

  13. #13
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Non pareil (enfin pour : peut-on modifier le fichier userpath.m).
    Il suffit pour cela de regarder où se trouve le fichier (avec la commande WHICH), et userpath.m est bien dans Program\MATLAB.

    Par contre ça y est du coup je viens de comprendre le truc

    La fonction userpath va chercher (pour Windows) le répertoire de lancement de MATLAB et le rajoute au path (juste le temps de la session donc ça changera suivant l'utilisateur).

    Donc tu peux placer ton fichier startup.m dans le répertoire retourné par la commande USERPATH.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/02/2009, 22h06
  2. Réponses: 2
    Dernier message: 23/06/2008, 16h27
  3. Ajouter une fonction start
    Par vince_30 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/03/2008, 12h04
  4. Ajouter une fonction de tri
    Par rafmos dans le forum C++
    Réponses: 3
    Dernier message: 10/09/2007, 17h46
  5. Réponses: 6
    Dernier message: 08/01/2007, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo