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 :

Compiler et Feval


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 12
    Points
    12
    Par défaut Compiler et Feval
    Bonjour à tous et merci encore pour votre aide les fois précédentes!

    Voici mon problème, je cherche à compiler un programme matlab mais j'ai quelques soucis avec feval. J'ai une fonction f que je veux tracer entreS x1 et x2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    y=feval(f,x1,x2);
    plot(x,f);
    ...
    Evidemment lorsque l'on compile ça passe pas...

    J'ai vu un autre topic similaire sur la chose mais il y a guerre d'infos seulement le fait qu'il faut utiliser des pragmas.
    J'ai donc tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    %#function f
    y=feval(f,x1,x2);
    plot(x,y);
    ...
    Sans succès, lorsque je compile il me dit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unrecognized Compiler pragma "%#feval f"
    Avez-vous une idée sur comment remplacer ce feval ?

    Matlab 6.5 sous windows

  2. #2
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Ce n'est pas ainsi qu'on utilise les pragma.
    Ce serait plutôt (dans le code où il y a le FEVAL) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %#function <ici le nom de la fonction>
    Attention je suppose que ta fonction ne s'appelle pas f, mais plutôt que le nom de la fonction est la valeur de la variable f.
    Si f peut prendre plusieurs valeurs (je suppose que oui) il faut mettre les différents fonctions les unes à la suite des autres en les séparant par un espace.
    Des exemples ici.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 12
    Points
    12
    Par défaut
    Super !!!!
    Merci beaucoup Caroline ça marche nickel

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 12
    Points
    12
    Par défaut
    Me revoila pour une petite complication, je ne sais pas si c'est possible mais ne sait on jamais...

    En fait ma fonction en question est dans un sous dossier nommé sousdossier1
    est ce qu'il serait possible de spécifier ce chemin au compilateur ?

    Par exemple faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    %#function [mon chemin,<ici le nom de la fonction>]
    Merci.

  5. #5
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Non mais tu peux rajouter ce répertoire au path MATLAB (voir ton autre sujet Chemin des fichiers (addpath non supportée) )
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 12
    Points
    12
    Par défaut
    Rebonjour à tout et merci particulièrement Caroline,

    Vous aller peut être me jetter mais bon...

    Voilà en fait Caroline dans ton poste tu avais mis

    Crées-toi un fichier pour la compilation qui reprend les commandes ADDPATH de ton fichier puis exécute la commende mcc.

    Sinon la documentation (http://www.mathworks.com/access/help...piler/mcc.html) explique qu'il faut utiliser l'option -I (et pas du tout -D, mes souvenirs me lâchent ).


    -I <directory> (Directory Path). Add a new directory path to the list of included directories. Each -I option adds a directory to the end of the current search path. For example,
    -I <directory1> -I <directory2>
    would set up the search path so that directory1 is searched first for M-files, followed by directory2. This option is important for stand-alone compilation where the MATLAB path is not available.
    En fait cela fait maintenant une journée que je suis dessus sans succès...
    J'ai essayé de créer un fichier nommé directory avec à l'intérieur le code suivant :

    Puis ensuite je le compile : mcc -I directory.m
    Evidemment ça ne marche pas et il me met une erreur mbuild...

    Si quelqu'un sait comment faire son aide me serait précieuse...

    Merci par avance.

  7. #7
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    Euh...non en fait tu n'as rien compris
    L'option -I sert pour rajouter derrière des répertoires où MATLAB ira regarder si les fonctions appelées sont dedans (comme si tu avais fait un ADDAPTH avant de ces répertoires).

    Je ne comprends pas très bien ce que tu veux faire maintenant...
    1. Quel est le fichier que tu veux compilé (celui-ci se trouvera derrière l'option -m) ?
    2. Quels sont les répertoires qui doivent être visibles par MATLAB (ceux contenant les fichiers utilisés par ton programme) avant la compilation ? => Ces répertoires peuvent être ajoutés SOIT en faisant un ADDPATH avant la compilation, SOIT par l'option -I.

    C'est plus clair ? (ou pas ? ...)
    Règles du Forum

    Adepte de la maïeutique

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 12
    Points
    12
    Par défaut
    Bonjour,
    Je reprend le pb depuis le début :
    -J'ai une fonction "f" éccrite dans le fichier "fonction.m" situé à la racine
    -Dans mon fichier test.m (à la racine aussi) ma fonction f est appelé et elle appelle à son tour les fonction1 et fonction2 de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    for i=1:2
    %#function fonction1 fonction2
    %f(1)=fonction1 et f(2)=fonction2
    resultat=feval(f(i),x1,x2)
    end
    Jusque là tout va bien. Le problème c'est que mon compilateur (v3.0) ne supporte pas le feval d'ou la ligne (pour laquelle tu m'a déjà aider caroline)) "%#function fonction1 fonction2"

    Maintenant le deuxième problème c'est que mes fonction "fonction1" écrite dans fonction1.m et fonction2 écrite dans fonction2.m sont toutes les deux situées dans un dossier nommé "sousdossier".
    Donc lorsque je compile il me dit que fonction1 et fonction2 n'existe pas et lorsque je déplace fonction1 et fonction2 à la racine tous marche nickel donc c'est bien un pb de chemin.
    Je voulais donc savoir si tu pouvais me "re"dire comment faire pour indiquer au compilo le chemin (sachant que j'ai déjà fait ma petite sauce avec le -I que je n'y arrive po)

    Dslé je suis un peu lourd...
    Merci pour ton aide.

  9. #9
    Expert éminent sénior
    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
    Points : 14 830
    Points
    14 830
    Par défaut
    C'est bizarre normalement il me semblait que les pragmas devaient être placés au début du fichier de la fonction appelante.

    Enfin bref as-tu essayé tout simplement de faire un ADDPATH de ton dossier sousdossier contenant fonction1 et fonciton2 avant de lancer la commande de compilation ?

    Et sinon avec le -I :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mcc -m fonction.m -I sousdossier
    En remplaçant sousdossier par l'arborescence complète de répertoires
    Règles du Forum

    Adepte de la maïeutique

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 35
    Points : 12
    Points
    12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Enfin bref as-tu essayé tout simplement de faire un ADDPATH de ton dossier sousdossier contenant fonction1 et fonciton2 avant de lancer la commande de compilation ?
    En effet non et ça marche

    Rapide et efficace
    MERCI Caroline !

Discussions similaires

  1. Réponses: 15
    Dernier message: 10/10/2002, 19h19
  2. [Installation] Borland Compiler 5.5 sous XP
    Par Ligey dans le forum Autres éditeurs
    Réponses: 16
    Dernier message: 28/09/2002, 22h45
  3. dans le fond, la compilation...
    Par deltapositive dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/09/2002, 12h14
  4. Vitesse de compilation
    Par srvremi dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/07/2002, 16h49
  5. Réponses: 1
    Dernier message: 27/05/2002, 01h44

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