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

C++Builder Discussion :

traduire une fonction de matlab vers C++ Builder


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Par défaut traduire une fonction de matlab vers C++ Builder
    Bonjour

    Alors voila mon problème j’ai fait une fonction on matlab et je veux la récrire sur C++ builder mai j’arrive pas a la faire jusque maintenant es que vous pouvez m’aider a la réécrire on C++ ? car je me bloque et je suis vraiment debutante en C++

    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
    22
    23
    24
    25
    26
    27
    y=[ 0.123 1.45 0.67];
    %------------- propriéterde signal --------
     
    long = length(y);  % longeur de signal  exple = 3 
    x    = (1:long); % némorité le nombre   x= [ 1 2 3]
    var=1;
    presition = 10 ; 
     
    % ----------- variable constante de morlet ---------  
    precis = 10; 
    [val_WAV,xWAV] = intwave('morl',precis);
    stepWAV = xWAV(2)-xWAV(1);
    xMaxWAV=16;
    %---------------- Clacule de cofisiant ---------------
      signal = y' ;
      coefs     = zeros(3,3); 
      ind=1;
      for i=1:3
          a=i;
          j = 1+floor((0:a*16)/(a*stepWAV));
          size(j)
          f = fliplr(val_WAV(j));
          coefs(ind,:) = -sqrt(a)*wkeep1(diff(wconv1(y,f)),3);
          ind = ind +1 ; 
      end 
      %-------------
      coefs
    avec matlab ça donne cette résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    coefs =
     
        0.1611   -0.1142   -0.2464
       -0.3223    0.0428    0.3312
       -0.6138    0.2950    0.6813
    et voila mon essé sur C++ builder

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    Void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    double signal[3];
    double *buffer;
    // ------------------ propriéter de signal --------------
    int longeur;
    int x[3] ;
    int var=1;
    int presition = 10 ;
    signal[1]=  0.123;
    signal[2]=  1.45;
    signal[3]=  0.67;
    longeur=3;
    for (int i=0; i<longeur ; i++)
        x[i]=i+1;
     
    //---------------------------------------------------------
    //----------------- variable constante de morlet----------
    int xMaxWAV=16;
    // ---------------- Calcule de cofessiant -----------
    double Coef[3][3];
    int indicateur
    int var
    indicateur=1;
    for (int i=0; i<17 ; i++)
        buffer[i]=i+1;
    for ( i=1;i<4;i++ )
      {
      var=i;
      int decimal =1+floor
      ....
      }
    }
    je suis bloqué

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Un début de solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    const int long = 3 ;
     
    float y[long] = {0.123, 1.45, 0.67} ;
     
    var  = 1 ;
     
    floar x[long] ;
     
    for(int i=1 ; i < long ; i++)
       x[i] = i ;
     
    int position = 10, precis = 10 ;
    Maintenant, tu peux passer l'implémentation de la fonction intwave

  3. #3
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Attension: le nom de variable que tu as utilisé "long" est un mot réservé. Utilises plutôt "longeur"

  4. #4
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 89
    Par défaut
    merci mai je voulez savoir si il existe des fonction telque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    floor
    size      
    fliplr
    sqrt(a)
    wkeep1
    diff
    wconv1(y,f)
    en C++ Builder dans ces librairer

  5. #5
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 385
    Par défaut
    floor:
    double floor ( double x );
    float floor ( float x );
    long double floor ( long double x );

    Round down value
    Returns the largest integral value that is not greater than x


    size: taille de vecteur ? à toi de specifier.

    sqrt:
    double sqrt ( double x );
    float sqrt ( float x );
    long double sqrt ( long double x );

    Compute square root
    Returns the square root of x


    Pour les autres fonctions, même si je ne les connais pas, mais je suis sur que sa pourrait se faire facilement (je suppose que sa manipule les vecteurs)?




    Citation Envoyé par kheira Voir le message
    merci mai je voulez savoir si il existe des fonction telque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    floor
    size      
    fliplr
    sqrt(a)
    wkeep1
    diff
    wconv1(y,f)
    en C++ Builder dans ces librairer

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/07/2011, 11h55
  2. [Débutant] utiliser une fonction de matlab sous C++Builder 6
    Par kheira dans le forum MATLAB
    Réponses: 5
    Dernier message: 12/03/2010, 11h23
  3. Utiliser une fonction de MATLAB dans un code C++
    Par Bella la vita dans le forum MATLAB
    Réponses: 6
    Dernier message: 15/01/2008, 15h18
  4. [sbadcond] Est-ce une fonction de MATLAB ?
    Par pierrecarray dans le forum MATLAB
    Réponses: 2
    Dernier message: 29/04/2007, 18h47
  5. Réponses: 1
    Dernier message: 25/12/2006, 16h03

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