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 :

cacher prompt Matlab


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut cacher prompt Matlab
    Bonjour tout le monde, j'ai un petit problème, j'ai déployé le code matlab suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function lanceur
     
    cmd = ['"MATLAB.exe" -nodesktop -r fonction'];
    system(cmd);
    avec la commande suivante:
    je lance lanceur.exe que j'appel avec la ligne
    il ouvre un deuxième promt et il lance le programme.
    Le problème est que si je ferme mon programme il me rend pas la main et si je ferme Matlab un message box windows me signale que le programe a cessé de fonctionner.

    Qeustions:
    comment faire pour cacher le deuxième lancement de Matlab? et comment resoudre le problème dû au message qui indique que le programme a cessé de fonctionner?
    Merci d'avance pour ceux qui prennent de leur temps pour m'aider

  2. #2
    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
    Je suis pas sure de tout comprendre vu que dans le tas tu as plusieurs programmes, on ne sait plus lequel pose problème...

    Si c'est pas indiscret : pourquoi fais-tu une chose pareille ? (compiler un fichier dont tu lances l'exe depuis MATLAB pour ouvrir un autre MATLAB...)

    Sinon si tu veux pouvoir garder la main dans ton 1er MATLAB (qui attend que le second soit fermé en fait) il faut lancer le fichier exécutable en "background".

    Le .exe du MATLAB me faisant penser que tu es sur Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    system('lanceur.exe &');

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    J'ai essayé cette solution mais c'est pas ça le problème le problème c'est la fermeture de la console il me tourne un message qui m'indique le la fermeture n'est propre c-à-d il m'affiche le message (lanceur.exe à cessé de fonctionner) si c'est pas claire dit moi où!
    Merci

  4. #4
    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
    Tu peux faire une copie d'écran du message d'erreur éventuellement ?

    Quand tu parles de la fermeture de la console, je suppose que c'est la console du 2ème MATLAB : comment le fermes-tu ?
    Quelles sont les lignes affichées après le lancement de lanceur.exe ?


    PS : sinon tu n'as pas expliqué pourquoi tu fais ça ? Peut-être y a-t-il une solution plus simple...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    voilà l'image qui apparaît en faite je ferme Matlab par le bouton rouge de fermeture et meme si je tape dans la console "exit" il m'affiche le meme message.
    lorsque je lance mon exe rien n'apparait sof x=5 c'est moi qui l'ai affiché pour teste qu'il execute le code.

    PS: pourquoi je fait lanceur.exe et pourquoi la commance cmd avec system(cmd) tout simplement car mon code n'est pas deployable et que j'ai besoin d'un exécutable (lanceur) alor je déploie lanceur.m qui ne contien que le code précédent et ça marche mon code (programme.m) n'est pas appelé lors du déploiement.
    Images attachées Images attachées  

  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
    C'est un peu compliqué de faire du code MATLAB compilé pour si peu.
    Tu pourrais tout simplement créer un fichier lanceur.bat qui contient ta ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MATLAB.exe -nodesktop -r fonction
    As-tu le même comportement si tu ouvres une fenête commande DOS et que justement tu tapes cette ligne (sans le -r fonction) ?

  7. #7
    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
    Le problème est qu'il utilise la comande systeme en standalone avec la R14...une des versions les + bugguées de MATLAB.
    Why does my compiled application hang after using a call to the SYSTEM or DOS functions?

  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
    Dans le lien qu'a donné tug83, ils disent que le problème vient de la compilation de la commande system.
    Or à mon avis ça ne sert à rien de compiler lanceur.m juste pour lancer une commande system alors que tu peux l'écrire directement.

    As-tu essayé ce que je t'ai conseillé ci-dessous ?
    Citation Envoyé par caro95470 Voir le message
    C'est un peu compliqué de faire du code MATLAB compilé pour si peu.
    Tu pourrais tout simplement créer un fichier lanceur.bat qui contient ta ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MATLAB.exe -nodesktop -r fonction
    As-tu le même comportement si tu ouvres une fenête commande DOS et que justement tu tapes cette ligne (sans le -r fonction) ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 70
    Par défaut
    voilà ce que j'ai fait

    j'ai copié le fichier que j'ai téléchargé "mexSystem.c" dans le lien:

    C:\Program Files\MATLAB71

    puis, dans le prompt matlab dans le meme repertoire j'ai tapé la commande:

    >>mex -setup

    Please choose your compiler for building external interface (MEX) files:

    Would you like mex to locate installed compilers [y]/n? y

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select a compiler: 
    [1] Borland C/C++ version 5.2 in C:\BC5 
    [2] Lcc C version 2.4.1 in C:\PROGRAM FILES\MATLAB71\sys\lcc 
     
    [0] None
    j'ai choisi 2 et j'ai confurmé.
    puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Are these correct?([y]/n): y
     
    Try to update options file: C:\Users\boukhary\Application Data\MathWorks\MATLAB\R14SP3\mexopts.bat 
    From template:              C:\PROGRAM FILES\MATLAB71\BIN\win32\mexopts\lccopts.bat 
     
    Done . . . 
     
    *************************************************************************** 
      Warning: The file extension of 32-bit Windows MEX-files was changed 
               from ".dll" to ".mexw32" in MATLAB 7.1 (R14SP3). The generated  
               MEX-file will not be found by MATLAB versions prior to 7.1. 
               Use the -output option with the ".dll" file extension to 
               generate a MEX-file that can be called in previous versions. 
               For more information see:  
               MATLAB 7.1 Release Notes, New File Extension for MEX-Files on Windows 
    *************************************************************************** 
     
    >> mex mexSystem.c
    Impossible de trouver C:\Program Files\MATLAB71\_lib79652.obj 
    Impossible de trouver C:\Program Files\MATLAB71\mexSystem.exp 
    Impossible de trouver C:\Program Files\MATLAB71\mexSystem.lib
    et finalement dans le repertoire de mon appli j'ai tapé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    which mexSystem
    'mexSystem' not found.
    j'ai fait une erreur c'est ce qui est démandé dans le lien

Discussions similaires

  1. retour à Matlab prompt
    Par maraval dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 15/06/2010, 11h05
  2. cacher un prompt
    Par Vetchostar dans le forum Cognos
    Réponses: 1
    Dernier message: 03/09/2008, 11h18
  3. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20
  4. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19
  5. Cacher fenetre
    Par Captain Fizzou dans le forum GLUT
    Réponses: 2
    Dernier message: 25/08/2002, 17h22

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