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 :

impossible de compiler la fonction open [Compiler]


Sujet :

MATLAB

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 55
    Points : 44
    Points
    44
    Par défaut impossible de compiler la fonction open
    bonjour,
    j'ai fais un programme bidon pour montrer ce que je n'arrive pas à compiler
    je n'ai pas trouver d'info la dessus sur la faq matlab

    tout simplement je n'arrive pas à compiler la fonction open
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open('manuel-utilisateur.pdf')
    marche très bien quand j’exécute directement sous matlab mais quand je compile il me dit que le fichier n'existe pas
    j'ai aussi essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uiopen('manuel-utilisateur.pdf')
    et la ça marche
    donc ce n'est pas que mon fichier n'est pas trouvé mais plutôt la fonction open qui à un souci pour la compilation ....

    le fichier .m est essai.m
    pour la compilation je tappe je signal aussi que dans mon fichier excluefile la fonction open n'en fait pas partit

    merci pour vos réponses

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Il existe plusieurs solutions. Le choix de l'une ou de l'autre dépendra du contexte.

    Si dans ton cas, tu cherches à joindre une documentation à ton projet, je te propose 2 solutions.

    La solution la plus simple consiste à intégrer le PDF dans l'exécutable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mcc -mv test.m -a manuel-utilisateur.pdf
    Avantage :
    • un seul fichier à déployer (l'exécutable)

    Inconvénients :
    • taille exécutable
    • si PDF modifié => nouvelle compilation nécessaire


    Une meilleure solution consiste à spécifier le chemin d'accès au fichier en relatif par rapport au dossier qui contient l'exécutable.

    Par exemple, si le fichier se trouve dans un sous-dossier "doc" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open('./doc/manuel-utilisateur.pdf')
    Avantage :
    • si contenu du PDF modifié => pas de nouvelle compilation nécessaire

    Inconvénient :
    • nécessite de conserver l'arborescence lors du déploiement


    Cela te convient-il ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    J'ai une autre solution qui permet de résoudre le problème du conservation de l'arborescence lors du déploiement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function Test()
    T=cd;
    open([T '\manuel-utilisateur.pdf'])
    end
    Créer l'exécutable
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par soft001 Voir le message
    J'ai une autre solution qui permet de résoudre le problème du conservation de l'arborescence lors du déploiement
    C'est exactement la même solution que la seconde que j'ai proposée si on place le fichier PDF dans le même dossier que celui de l'exécutable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open('./manuel-utilisateur.pdf')
    Ta solution ne résout en rien le problème de l'arborescence.
    Le fichier PDF et l'exécutable doivent se trouver dans le même dossier.

    ET de plus, il faut utiliser FULLFILE pour concaténer les chemins => : Comment concaténer le nom d'un fichier et celui d'un répertoire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    open(fullfile(T,'manuel-utilisateur.pdf'))
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Ouiiii
    En fait j'ai cru que dans la fonction il faut mettre l'adresse du fichier, je savais pas que ./ fait ça
    après je vois pas comment faire autrement
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Dans un cadre plus général, si c'est à l'utilisateur final de spécifier un dossier à l'exécutable, il est toujours possible d'utiliser par exemple UIGETDIR et de stocker le chemin à l'aide de SETPREF. Un simple test avec ISPREF évitera de demander à nouveau le chemin à l'utilisateur.

    Mais je pense que l'on s'éloigne du sujet initial.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Quelle est ta version de MATLAB ?

    Sur quel système d'exploitation travailles-tu ?

    Que renvoie la commande suivante ?

    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 55
    Points : 44
    Points
    44
    Par défaut
    merci à tous pour vos réponse surtout DUT car tu m'as beaucoup aidé dans la résolution de mon problème

    voici ma correction exacte, je ne sais pas pourquoi elle fonctionne comme ca alors que l'autre fonctionne aussi bien en .m
    bref

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function data = localaide(data)
    open(fullfile('.\options','manuel-utilisateur.pdf'))
    ensuite je fais

    et le tour est joué

    encore merci

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

Discussions similaires

  1. [LG] Compilation de fonction 'sans retour', ...
    Par poppels dans le forum Langage
    Réponses: 5
    Dernier message: 16/10/2005, 12h08
  2. DAO impossible d'utiliser une fonction dans un requete
    Par exter666 dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2005, 17h15
  3. [JOnAS][JOPE] impossible de compiler un bean
    Par Raylemon dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/04/2005, 16h48
  4. compiler un prog open gl
    Par bobbyf dans le forum OpenGL
    Réponses: 2
    Dernier message: 11/03/2004, 08h22
  5. impossible d'utiliser ma fonction dans un insert
    Par caramel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/04/2003, 15h04

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