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

Simulink Discussion :

[Embedded MATLAB Function] Type mxArray


Sujet :

Simulink

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 13
    Par défaut [Embedded MATLAB Function] Type mxArray
    bonjour,

    je devellope actuellement un modèle simulink ou je fais appel à un bloc matlab embedded, qui contient un script matlab.

    Je declare une variable en persistent (var) et je l'initialise dans une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if isempty(var)
         var=lcm(x,y)/x;
    end;
    le resultat devrais être un entier (int ou double) : lcm étant la fonction qui donne le plus petite diviseur diviseur commun.

    ensuite j'utilise cette variable dans un test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(test == var)
       ...
    end;
    Or cela ne compile pas car le type de var est un mxArray, or il ne veux pas de ce type pour le test que j'effectue après ...

    voila le texte de l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    "Expected either a logical, char, int, fi, single, or double.
    Found an mxArray.  mxArrays are returned from calls to the MATLAB interpreter and are not supported inside expressions.  They may be used on the right-hand side of assignments and as arguments to MATLAB calls.
     
    Function 'X' (#134.1059.1068), line 47, column 20:
    "var""
    je me retrouve dans une impasse totale ... j'ai essayé de forcer le cast par la fonction cast(var,'int8') ou directement de caster dans le test int8(var) mais rien ne marche. j'ai aussi essayer de convertir le type mxArray en int ou double mais je n'y arrive pas...
    si quelqu'un peut m'aider, je lui en serais très reconnaissant

    Merci d'avance

  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 317
    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 317
    Par défaut
    La seule chose que je peux donner, c'est le lien vers la documentation : mxArray

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 13
    Par défaut
    Citation Envoyé par Dutmatlab
    La seule chose que je peux donner, c'est le lien vers la documentation : mxArray
    Ok, je te remercie de m'avoir donner le lien, mais j'ai fini par trouver le problème : j'essayais d'utiliser la fonction lcm (ppcm) dans une embedded function sous matlab, et cette fonction n'était pas utilisable dans une embedded fonction ... Donc ça me mettais un warning pour me dire que l'opération serais executer dans le workspace et simulink n'echange que des mxArray avec le workspace ...
    Je ne sais pas si je suis clair ...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/07/2012, 11h03
  2. Réponses: 4
    Dernier message: 08/10/2007, 11h27
  3. [Embedded Matlab Function] Etablir un compteur
    Par berberat dans le forum Simulink
    Réponses: 1
    Dernier message: 28/09/2007, 10h36
  4. [Embedded Matlab Function] Problème d'utilisation
    Par berberat dans le forum Simulink
    Réponses: 1
    Dernier message: 21/09/2007, 15h27
  5. [Embedded MATLAB function] Comment ça fonctionne ?
    Par droledelolo dans le forum Simulink
    Réponses: 1
    Dernier message: 04/04/2007, 09h03

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