MATLAB et VC++ Express 2005...
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

MATLAB et VC++ Express 2005...



  1. #1
    invited0a85c91

    MATLAB et VC++ Express 2005...


    ------

    Bonjour a tous!

    Je prépare une thèse sur un bras robotisé, j'ai donc deux parties distinctes:
    -Une ou j'utilise MATLAB pour tout ce qui est des calcules des matrices (martice d'inertie et tout le tralala...).
    -Une autre sous Visual C++ express 2005, où j'ai modélisé le bras robotisé en 3D avec la librairie OpenGL.
    Mon problème c'est que je voudrai exploiter les résultats que me donne MATLAB (par exemple le déplacement du bras: "X") et l'entrer dans mon programme en C++ pour que mon robot puisse se déplacer selon X.

    Merci.

    -----

  2. #2
    Towl

    Re : MATLAB et VC++ Express 2005...

    Que souhaites tu faire exactement ?
    - commander ton appli C++ à partir des résultat de matlab ? Dans ce cas, il faut regarder du coté de la création de plugin matlab (la je peux pas t'aider)
    - faire des calculs dans matlab, exporter les résultat, et les jouer dans ton appli C++ ?
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  3. #3
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    Citation Envoyé par Towl Voir le message
    - faire des calculs dans matlab, exporter les résultat, et les jouer dans ton appli C++ ?
    oui ça serait une solution! pourai-tu m'éclairer sur ça ?

  4. #4
    Towl

    Re : MATLAB et VC++ Express 2005...

    Le plus simple c'est de créer un fichier correspondant à tes résultats dans matlab, et utiliser ton programme pour le lire.
    Le plus dur la dedans sera de définir le format de fichier pour que celui-ci soit facilement transposable de l'un à l'autre.
    Pour pouvoir t'aider, il faudrait savoir la forme que prenne tes sorties sous matlab avec quelques exemples, et les entrées que prends ton programme pour essayer d'homogénéiser tout cela
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  5. A voir en vidéo sur Futura
  6. #5
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    les valeurs d'entrées sous MATLAB sont des positions et vitesses articulaires notées réspectivement "q" et "v" tel que "q" est un vecteur défitnit comme suit: q=[qx ; qy ; qz] et v=[vx ; vy ; vz], les résultats une fois le programme matlab lancé est donné sous forme de vecteur de 1000 valeurs tel que :
    qx=[0.1 0.101......................... ..........0.6]
    qy=[0.1 0.101......................... ..........0.6]
    qz=[0.1 0.101......................... ..........0.6]

    vx=[0 0 2 5............................. ........0]
    vy=[0 1............................. .............0]
    vz=[0 0............................. ..........1 0]

    puis mes valeurs de sortie dans mon programme VC++ sont des angles: "a1" ,"a2" et "a3" aux quels je voudrai associer réspéctivement mes valeurs qx,qy, et qz. et des vitesses angulaires: "w1","w2" et "w3" aux quels je voudrai associer réspéctivement mes valeurs vx, vy et vz

    voilà, j'éspère que j'ai bien répondu a ta question, merci!

  7. #6
    Towl

    Re : MATLAB et VC++ Express 2005...

    Si je comprends bien (à 3h du mat', ça peut ne pas etre ca ) un bête fichier texte pourrait suffir.
    Tu pourrais écrire à partir de matlab le fichier export.txt de la forme:
    0.1 0.101......................... ..........0.6
    0.1 0.101......................... ..........0.6
    0.1 0.101......................... ..........0.6
    0 0 2 5............................. ........0
    0 1............................. .............0
    0 0............................. ..........1 0
    ou la premiere ligne correspond à qx, la seconde à qy...

    Ensuite, ton programme C++ n'aurait qu'a parser ce fichier pour récupérer les valeurs et faire ca petite tambouille interne pour calculer ses angles et ses vitesses angulaires
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  8. #7
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    d'accord, je vais éssayer de faire ça...au fait Towl, tu t'y connais en C++

  9. #8
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    bonjour!

    je voudrais récupérer une variable dans le wrokspace, mais celui là est vide comment on fait pour récupéré les données dans le workspace?

  10. #9
    Towl

    Re : MATLAB et VC++ Express 2005...

    d'accord, je vais éssayer de faire ça...au fait Towl, tu t'y connais en C++
    Euh .. je sais le lire, je connais les principes de programmation objet, mais je n'ai jamais écrit une ligne de C++

    je voudrais récupérer une variable dans le wrokspace, mais celui là est vide comment on fait pour récupéré les données dans le workspace?
    Je ne comprends pas vraiment ta question la, désolé :s
    The only limiting factor of the Linux operating system, is his user. - Linus Torvalds

  11. #10
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    ce que je veut dire, c'est que j'aimerai récupérer les 1000 valeurs de position (définies plus haut) dans un vecteur,je sais que matlab stock les résultats des matrices dans le workspace, mais là en l'occurence il est vide...

  12. #11
    ketchupi

    Re : MATLAB et VC++ Express 2005...

    le langage MATLAB qui est un langage interprété, peut néanmoins être compilé sous VC++. Va faire un tour du côté de mcc, c'est un programme (payant néanmoins) qui permet de compiler du matlab en C++.
    On ne force pas une curiosité, on l'éveille. Daniel Pennac

  13. #12
    lou_ibmix_xi

    Re : MATLAB et VC++ Express 2005...

    Salut,

    Un problème après l'autre:

    Une solution peut-être plus souple (celà dépends de ton application) serait d'appeller ton programme C++ depuis MATLAB avec comme argument le nom de ton fichier (tu paux appeller n'importe quel programme avec la commande "system" de MATLAB)....

    le langage MATLAB qui est un langage interprété, peut néanmoins être compilé sous VC++. Va faire un tour du côté de mcc, c'est un programme (payant néanmoins) qui permet de compiler du matlab en C++.
    Si je me rappelle bien, celà ne marcherai pas dans ce cas, en effet le compilos MATLAB, fourni sous forme de "toolbox" supplémentaire et payante", te transforme effectivement du code matlab en un programme en code source que tu peux compiler... Mais, n°1, le code est illisible (mais alors vraiment), et n°2 (si je me rappelle bien), l'executable créé est fait pour être appelé DEPUIS MATLAB, avec une grosse surcouche pour traduire les matrices d'entrés, c'est d'ailleurs comme celà que sont implémentées la plupart des fonctions MATLAB (trouve et regarde fft.m par exemple). ATTENTION, c'est un vague et vieux souvenir, les choses ont peut-être changées depuis...

    Comment crées-tu ton vecteur? Si c'est dans une fonction sous forme d'un fichier ".m", toutes les variables crées dans ton fichier restent locales à ton fichier. Pour resortir une variable d'un fonction il faut faire:
    Code:
    function [nom_variable1, nom_variable2] = nom_fonction (entree1, entree2)
    Je me permet un conseil (et une pub pour les logiciels libres):
    Peut-être regarde du côté d'OCTAVE, un clône 99% avec MATLAB mais gratuit, et qui présente l'avantage de pouvoir s'embarquer facilement dans les programmes C et C++ (voir là par exemple http://personal.ee.surrey.ac.uk/Pers...?page=4&site=4)

  14. #13
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    je vais éssayer ça, et je vous tiens au courant

  15. #14
    invited0a85c91

    Re : MATLAB et VC++ Express 2005...

    Citation Envoyé par lou_ibmix_xi Voir le message
    Salut,


    Comment crées-tu ton vecteur? Si c'est dans une fonction sous forme d'un fichier ".m", toutes les variables crées dans ton fichier restent locales à ton fichier. Pour resortir une variable d'un fonction il faut faire:
    Code:
    function [nom_variable1, nom_variable2] = nom_fonction (entree1, entree2)
    J'ai pas trés bien compris,ce code je l'écrit dans mon programme oubien dans la console?
    et puis je n'ai pas compris non plus C quoi la différence entre "nom_variable1" et "entree1"??? c'est la même chose non?

  16. #15
    lou_ibmix_xi

    Re : MATLAB et VC++ Express 2005...

    Salut,
    Ton programme est bien constitué de fonctions, avec un fichier pour chaque fonction. Cette ligne est la manière de déclarer une fonction, elle doit se trouver au début du fichier ".m". "nom_variable1" et "nom_variable2" sont les sorties de ta fonction (tu en as autant que tu veux), et "entree1" ... les entrées, qui ne seront pas modifiées (un peu à la manière du C, MATLAB travaille sur des copies)

Discussions similaires

  1. Visual C++ 2005 Express édition
    Par Memnon dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 06/07/2007, 11h17
  2. rt 2005?
    Par invitec5a335bb dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 9
    Dernier message: 29/06/2006, 22h03
  3. Outlook Express
    Par f4ekn dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 23/05/2006, 17h47
  4. outlook express 6
    Par invite4fad4b35 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 2
    Dernier message: 03/11/2005, 17h57
  5. [MatLab] Sb2Sl => Matlab classique = pb intégration.
    Par invite6e6d5361 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 03/08/2005, 21h02
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...