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

Bibliothèques Discussion :

boost::numeric::ublas matrix.assign( identity_matrix )


Sujet :

Bibliothèques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut boost::numeric::ublas matrix.assign( identity_matrix )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        m_Matrice  = matrix<float>(4,4);
        m_Identite = identity_matrix<float>(4);
        m_Zero     = zero_matrix<float>(4,4);
     
        m_Matrice.assign(m_Identite);
    Problème si j'affiche m_Matrice apres ça , on vois qu'elle est composée que de zéros.
    J'ai alors affecté à la main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        m_Matrice(0,0) = 1.0;
        m_Matrice(1,1) = 1.0;
        m_Matrice(2,2) = 1.0;
        m_Matrice(3,3) = 1.0;
    pour voir si cela venait de l'affichage . Ce qui n'est pas le cas. J'ai alors affiché m_Identite et on voit bien la diagonale de 1.
    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_Matrice = m_Identite
    Cela non plus ne fonctionne pas. Et avec l'opérateur += l'appliaction plante.

    cela fonctionne bien si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_Matrice  = identity_matrix<float>(4);
    mais bon j'aimerais bien assigner des matrices existantes entre elles.

    Documention ublas
    Documention du type matrix

  2. #2
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    http://osdir.com/ml/lib.boost.ublas/.../msg00106.html
    Comme on peut le voir sur ce lien pour créer une matrice d'identitée, on lui passe en paramètres deux tailles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    identity_matrix<value_type>( a.size1(), a.size2() )
    Hors je croyais en regardant dans la doc de ublas que la création se faisait avec une seule taille puisqu'une matrice d'identitée est carrée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    identity_matrix (size_type size) 	Constructs an identity_matrix that holds size rows of size elements.
    Ce soir ou ce midi je vais donc essayer avec deux paramètres.

  3. #3
    Membre éclairé Avatar de Suryavarman
    Homme Profil pro
    Développeur 3D
    Inscrit en
    Mai 2006
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur 3D
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mai 2006
    Messages : 233
    Par défaut
    Faites vos matrices avec des pointeurs c'est moche pour les opérateurs mais quand on créer un objet avec des templates vos mieux le faire nikel du premier cou que d'affecter un objet par copie lors de la construction. C'est la conclusion que j'en tire .

    EDIT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    m_Identite = new identity_matrix<float>(4,4); //ca marche tres bien aussi

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 12/08/2012, 20h29
  2. Métaprogrammation dans boost::numeric::ublas
    Par Kaluza dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2011, 18h11
  3. boost::numeric::ublas matrix -> opengl
    Par Suryavarman dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 17/05/2007, 16h58
  4. [BOOST] utilisation de boost uBLAS non compile avec visual c++
    Par le_voisin dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 06/09/2006, 22h03
  5. probleme boost::ublas
    Par p_moiret dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 19/12/2005, 16h10

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