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++ Discussion :

conversation du matlab à C++


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 3
    Par défaut conversation du matlab à C++
    salut
    Est ce que quelqu'un peut m'aider, je veux calculer la matrice de rigidité de la force interne du modèle déformable (snake) en 3D, j'utilise le maillage triangulaire ou simplexe, alors j'ai cette fonction en matlab et je veux la convertir 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    function B=SnakeInternalForceMatrix3D(FV,alpha,beta,gamma)
    %
    % B=SnakeInternalForceMatrix3D(F,alpha,beta,gamma)
    %
    % inputs,
    %   FV : Struct (Patch) with the triangulated surface
    %   alpha : membrame energy  (first order)
    %   beta : thin plate energy (second order)
    %   gamma : Step Size (Time)
    %
    % outputs,
    %   B : The Snake Smoothness regulation matrix
    %
    % Function is written by D.Kroon University of Twente (July 2010)
     
    Ne=VertexNeighbours(FV.faces,FV.vertices);
    nV=size(FV.vertices,1);
     
    % Matrix for umbrella mesh derivative function in (sparce) matrix form
    NeMatrix = spalloc(nV,nV,nV*10);
    for i=1:nV
        Nc=Ne{i};
        % Add the neighbours
        NeMatrix(i,Nc)=1/length(Nc);
        % Add the vertex it self 
        NeMatrix(i,i)=-1;
    end
     
    % Total internal force matrix
    B=speye(nV,nV)+gamma*(alpha*NeMatrix-beta*NeMatrix*NeMatrix);
     
    function Ne=VertexNeighbours(F,V)
    % Function which return the neighbouring vertices of every vertex
    % in a cell array list. (Basic version, not sorted by rotation)
     
    % Neighbourh cell array 
    Ne=cell(1,size(V,1));
     
    % Loop through all faces
    for i=1:length(F)
        % Add the neighbors of each vertice of a face
        % to his neighbors list.
        Ne{F(i,1)}=[Ne{F(i,1)} [F(i,2) F(i,3)]];
        Ne{F(i,2)}=[Ne{F(i,2)} [F(i,3) F(i,1)]];
        Ne{F(i,3)}=[Ne{F(i,3)} [F(i,1) F(i,2)]];
    end
     
    % Remove duplicate vertices
    for i=1:size(V,1), Ne{i}=unique(Ne{i}); end
    la diffèculté que je trouve ici c'est spalloc et speye, merci de m'aider

  2. #2
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    spallco est un allcoateur de matrice creuse,
    speye renvoit la matrice creuse identitié

    faut aller pecho une lib qui gere ca les sparses matrix et hop

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766

Discussions similaires

  1. Conversion programme matlab en python 2.6
    Par frisou65 dans le forum Calcul scientifique
    Réponses: 1
    Dernier message: 01/10/2011, 18h01
  2. [Débutant] Conversion code MATLAB en code Python 2.6
    Par frisou65 dans le forum MATLAB
    Réponses: 1
    Dernier message: 28/09/2011, 19h52
  3. Conversion Simulink -> Matlab
    Par Matersss dans le forum Simulink
    Réponses: 2
    Dernier message: 14/06/2011, 23h32
  4. Conversion dates MATLAB vers Excel
    Par harafado dans le forum MATLAB
    Réponses: 3
    Dernier message: 02/04/2009, 12h47

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