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 :

Lire un fichier contenant une matrice et le stocker dans un vecteur


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut Lire un fichier contenant une matrice et le stocker dans un vecteur
    Bonjour,

    Je voudrais lire à partir d'une fichier .txt une matrice triangulaire supérieure et la stocker dans une variable matrice. Est ce que quelqu'un aurait une idée sur la façon de s'y prendre. Je ne suis pas un expert en C++, mais je suis ouvert à toutes vos remarques qui peuvent me faire avancer.

    Le fichier .txt à la configuration suivante :

    Matrice de covariance
    3.08787791981153E-02
    6.5040824508478E-03 0.227357513661848
    -3.30917216603529E-03 -1.79684729334368E-04 0.1
    ect...

    J'ai de mon côté trouver quelque chose qui tient la route mais je ne suis pas ur que ça me stocker ça dans une variable matrice d'autant plus que je ne sais pas si ça peut marcher pour une matrice triangulaire supérieur je vous donne la partie du code que j'ai trouvé:


    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    #include <vector> //pour std::vector
    #include <string> // pour std::string et std::getline
    #include <sstream> //pour std::istreamstring
    #include <iostream> //pour les std::cout, std::cin....
    #include <fstream> //pour lire les fichiers
     
    std::vector<std::vector<int> > MatriceA;
     
    std::ifstream fichier("toto.txt");
     
     
    if(fichier)
    {
    std::string tmpLine;
     
    while(std::getline(fichier,tmpLine))
    {
    std::vector<int> tmpVector;
    std::istringstream toto(tmpLine);
    std::string mot;
    while ( std::getline(toto, mot, ';' ) )
    {
    std::istringstream mot_nombre(mot);
    int nombre;
    mot_nombre >> nombre;
     
    tmpVector.push_back(nombre);
    }
     
    correlation.push_back(tmpVector);
    }
     
    ////-- Display Matrice:
    //std::vector<std::vector<int> >::iterator ita = MatriceA.begin();
    //std::vector<int>::iterator ita2;
    //while(ita != MatriceA.end())
    //{
    // ita2 = ita->begin();
    // while(ita2 != ita->end())
    // {
    // std::cout<<"\t" <<*ita2;
    // ita2++;
    // }
    // std::cout<<std::endl;
    // ita++;
    //}
     
    ////-- Or display again with []
     
    //-- get indice I and indice j
    std::vector<std::vector<int> >::iterator ita = MatriceA.begin();
    std::vector<int>::iterator ita2;
     
    long xlen =0;
    long ylen =0;
     
    if(ita !=MatriceA.end()) 
    {
    ylen=MatriceA.size(); //Y axis
    xlen =MatriceA[0].size(); //X axis
    }
     
    for(long i =0; i<ylen; i++)
    {
    for(long j=0; j<xlen; j++)
    {
    std::cout<<"\t" <<MatriceA[j];
    }
    std::cout <<std::endl;
    }
     
    }
     
    std::cin.ignore();
    return 0;
      0  0

  2. #2
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    Salut,

    Ca a pas l'air mal ton code mais ya truc qui m'interpèle :
    quand tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    //-- Display Matrice:
    std::vector<std::vector<int> >::iterator ita = MatriceA.begin();
    std::vector<int>::iterator ita2;
    while(ita != MatriceA.end())
    {
    	ita2 = ita->begin();
    	while(ita2 != ita->end())
    	{
    		std::cout<<"\t" <<*ita2;
    		ita2++;
    	}
    	std::cout<<std::endl;
    	ita++;
    }
    tu ne rentrera pas dans ton while puisque MatriceA est vide, donc "ita = MatriceA.end()"


    correlation correspond à quoi???


    P.S.:
      0  0

  3. #3
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut
    En fait j'ai changé le code, celui là me parait plus approprié pour lire la matrice, mais bien sur il ne marche pas du premier coup. Peut-tu m'aider s'il te plait à deceler ce qu'il ne va pas???
    Merci

    Voilà le code en question :

    Ne fait pas attention aux include, il y a tout ce qu'il faiut,

    #include "essai.h"



    void main ()
    {
    istream fichier("D:\\Documents and Settings\\AMOR\\My Documents\\Visual Studio Projects\\covariance.txt",ios::in)
    char dim[2];
    fichier.getline(dim,2);
    ArrayLengthSpecifier dimension((int)dim[1]);
    SymmetricMatrix& covariance(dimension);
    int i=0;
    int compteur=0;
    do
    {
    i++;
    char ligne[2*i];
    fichier.getline(ligne,2*i);
    for (int j=1;j<=2*i;j++)
    {
    if (!j%2==0)
    {
    compteur = compteur++
    covariance(i,compteur) =ligne[j];
    }
    }

    }
    while (!fichier.eof());
    for (i=1;i<=dim[1];i++)
    {
    for (j>i;j<=dim[1];j++)
    {
    covariance(i,j)=covariance(j,i);
    }
    }
    Matrix C;
    C=chol(covariance);
    cout << "le premier element de la matrice de Cholesky est:" << C(1,1) << "\n";
    }

    Le fichier d'entrée resemble à la configuration suivante :
    4
    1
    5 1.2356
    1 2 3.2589713
    0.9 0.754896321 1 0.3

    Les messages d'erreurs sortis par le code sont :

    ------ Début de la régénération globale*: Projet*: CorrelSimul, Configuration*: Release Win32 ------

    Supprimer des fichiers de sortie et des fichiers intermédiaires du projet 'CorrelSimul', configuration 'Release|Win32'.
    Compilation...
    Stdafx.cpp
    Compilation...
    Submat.cpp
    sort.cpp
    Solution.cpp
    Sl_ex.cpp
    Newmatex.cpp
    Newmat9.cpp
    Newmat8.cpp
    Newmat7.cpp
    Newmat6.cpp
    Newmat5.cpp
    Newmat4.cpp
    Newmat3.cpp
    Newmat2.cpp
    Newmat1.cpp
    Myexcept.cpp
    evalue.cpp
    essai.cpp
    essai.cpp(9) : error C2448: 'fichier'*: l'initialiseur de style fonction semble être une définition de fonction
    essai.cpp(10) : error C2065: 'fichier'*: identificateur non déclaré
    essai.cpp(10) : error C2228: la partie gauche de '.getline' doit avoir un type class/struct/union
    le type est ''unknown-type''
    essai.cpp(10) : error C2065: 'dim'*: identificateur non déclaré
    essai.cpp(11) : error C3861: 'dim': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(12) : error C2440: 'initialisation'*: impossible de convertir de 'ArrayLengthSpecifier' en 'SymmetricMatrix &'
    Une référence qui ne retourne pas à 'const' ne peut pas être liée à une non-lvalue
    essai.cpp(18) : error C2057: expression de constante attendue
    essai.cpp(18) : error C2466: impossible d'allouer un tableau de taille constante 0
    essai.cpp(19) : error C2228: la partie gauche de '.getline' doit avoir un type class/struct/union
    le type est ''unknown-type''
    essai.cpp(19) : error C2065: 'ligne'*: identificateur non déclaré
    essai.cpp(19) : error C3861: 'fichier': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(22) : warning C4804: '%'*: utilisation risquée du type 'bool' dans l'opération
    essai.cpp(25) : error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'covariance'
    essai.cpp(25) : error C3861: 'ligne': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(30) : error C2228: la partie gauche de '.eof' doit avoir un type class/struct/union
    le type est ''unknown-type''
    essai.cpp(30) : error C3861: 'fichier': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(31) : error C3861: 'dim': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(33) : error C2065: 'j'*: identificateur non déclaré
    essai.cpp(33) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(33) : error C3861: 'dim': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(33) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(35) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(35) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(39) : error C2065: 'C'*: identificateur non déclaré
    essai.cpp(40) : error C2593: 'operator <<' est ambigu
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(434): peut être 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits>::_Mysb *)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(414): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(const void *)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(394): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(long double)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(374): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(double)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(354): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(float)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(333): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned __int64)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(313): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(__int64)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(292): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned long)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(272): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(long)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(252): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned int)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(227): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(int)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(207): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(unsigned short)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(174): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(short)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(154): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(std::_Bool)'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(148): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(std::ios_base &(__cdecl *)(std::ios_base &))'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(142): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits>::_Myios &(__cdecl *)(std::basic_ostream<_Elem,_Traits>::_Myios &))'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\ostream(137): ou 'std::basic_ostream<_Elem,_Traits>::_Myt &std::basic_ostream<_Elem,_Traits>::operator <<(std::basic_ostream<_Elem,_Traits>::_Myt &(__cdecl *)(std::basic_ostream<_Elem,_Traits>::_Myt &))'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    lors de la tentative de mise en correspondance de la liste des arguments '(std::basic_ostream<_Elem,_Traits>::_Myt, 'unknown-type')'
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    essai.cpp(40) : error C3861: 'C': identificateur introuvable, même avec une recherche qui dépend de l'argument
    CorrelSimul.cpp
    Cholesky.cpp
    Bandmat.cpp

    Le journal de génération a été enregistré à l'emplacement "file://d:\Documents and Settings\Amor\My Documents\Visual Studio Projects\correlation_c++\Release\BuildLog.htm"
    CorrelSimul - 25 erreur(s), 1 avertissement(s)


    ---------------------- Terminé ----------------------

    Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré
      0  0

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Par défaut
    heu... juste un détail, dans ton exemple, la matrice ne serait pas triangulaire inférieure ?
      0  0

  5. #5
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut
    Oui excuse moi j'ai confondu, le fichier d'entrée est une matrice tringulaire inférieure voici le code un peu trnaformé avec plus que 9 messages d'erreurs :
    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
    #include "essai.h"
     
     
     
    void main ()
    {
    	ifstream fichier("D:\\Documents and Settings\\AMOR\\My Documents\\Visual Studio Projects\\covariance.txt",ios::in);
    	char dim[2];
    	fichier.getline(dim,2);
    	ArrayLengthSpecifier dimension((int)dim[1]);
    	SymmetricMatrix covariance(dimension);
    	int i=0;
    	int compteur=0;
    	do
    	{
    		i++;
    		char ligne[2*i];
    		fichier.getline(ligne,2*i);
    		for (int j=1;j<=2*i;j++)
    		{
    			if (!j%2==0)
    			{
    				compteur = compteur++
    				covariance(i,compteur) =ligne[j]; 
    			}
    		}
     
    	}
    	while (!fichier.eof());
    	for (i=1;i<=dim[1];i++)
    	{
    		for (j>i;j<=dim[1];j++)
    		{
    			covariance(i,j)=covariance(j,i);
    		}
    	}
    	Matrix C;
    	C=chol(covariance);
    	cout << "le premier element de la matrice de Cholesky est:" << C(1,1) << "\n";
    }
    Le fichier de sortie est le suivant :
    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
     
     
    ------ Début de la régénération globale*: Projet*: CorrelSimul, Configuration*: Release Win32 ------
     
    Supprimer des fichiers de sortie et des fichiers intermédiaires du projet 'CorrelSimul', configuration 'Release|Win32'.
    Compilation...
    Stdafx.cpp
    Compilation...
    Submat.cpp
    sort.cpp
    Solution.cpp
    Sl_ex.cpp
    Newmatex.cpp
    Newmat9.cpp
    Newmat8.cpp
    Newmat7.cpp
    Newmat6.cpp
    Newmat5.cpp
    Newmat4.cpp
    Newmat3.cpp
    Newmat2.cpp
    Newmat1.cpp
    Myexcept.cpp
    evalue.cpp
    essai.cpp
    essai.cpp(17) : error C2057: expression de constante attendue
    essai.cpp(17) : error C2466: impossible d'allouer un tableau de taille constante 0
    essai.cpp(17) : error C2133: 'ligne'*: taille inconnue
    essai.cpp(21) : warning C4804: '%'*: utilisation risquée du type 'bool' dans l'opération
    essai.cpp(24) : error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'covariance'
    essai.cpp(32) : error C2065: 'j'*: identificateur non déclaré
    essai.cpp(32) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(32) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(34) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(34) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    CorrelSimul.cpp
    Cholesky.cpp
    Bandmat.cpp
     
    Le journal de génération a été enregistré à l'emplacement "file://d:\Documents and Settings\Amor\My Documents\Visual Studio Projects\correlation_c++\Release\BuildLog.htm"
    CorrelSimul - 9 erreur(s), 1 avertissement(s)
     
     
    ---------------------- Terminé ----------------------
     
        Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré
      0  0

  6. #6
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    Je veux bien t'aider mais s'il te plait met ton code dans des balises [CODE], c'est beaucoup plus lisible

    Pour ce qui est des erreurs :

    1. ici j est inconnu puisqu'il n'est déclarer que dans la boucle for précédente.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      for (j>i;j<=dim[1];j++){
      	covariance(i,j)=covariance(j,i);
      }
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      for (int j=1;j<=2*i;j++){
      	if (!j%2==0){
      		compteur = compteur++
      		covariance(i,compteur) =ligne[j]; 
      	}
      }
    2. j'ai un doute sur la déclaration de "ligne" (je sais que sur mon compilo ca ne passerait pas, il attend une expression constante)
    3. il manque un ";" à la fin de ta 1ere ligne, sauf si c'est une faute de frappe ^^
      0  0

  7. #7
    Membre confirmé Avatar de Sachiel31
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 121
    Par défaut
    Corrige les erreurs que je t'ai indiqué et ca ira mieux

    Citation Envoyé par Sachiel31
    Pour ce qui est des erreurs :

    1. ici j est inconnu puisqu'il n'est déclarer que dans la boucle for précédente.
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      for (j>i;j<=dim[1];j++){
      	covariance(i,j)=covariance(j,i);
      }
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      for (int j=1;j<=2*i;j++){
      	if (!j%2==0){
      		compteur = compteur++
      		covariance(i,compteur) =ligne[j]; 
      	}
      }
    2. j'ai un doute sur la déclaration de "ligne" (je sais que sur mon compilo ca ne passerait pas, il attend une expression constante)
      0  0

  8. #8
    Membre averti
    Inscrit en
    Juillet 2006
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 52
    Par défaut
    effectivement, voiçi les transformaions que je réalise mais toujours un problème avec la variable j non défini
    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
     
    #include "essai.h"
     
     
     
    void main ()
    {
    	ifstream fichier("D:\\Documents and Settings\\AMOR\\My Documents\\Visual Studio Projects\\covariance.txt",ios::in);
    	char dim[2];
    	fichier.getline(dim,2);
    	ArrayLengthSpecifier dimension((int)dim[1]);
    	SymmetricMatrix covariance(dimension);
    	int i=0;
    	int compteur=0;
    	do
    	{
    		i++;
    		ligne = new char [2*i];
    		fichier.getline(ligne,2*i);
    		for (int j=1;j<=2*i;j++)
    		{
    			if (!j%2==0)
    			{
    				compteur = compteur++
    				covariance(i,compteur) =ligne[j]; 
    			}
    		}
    		delete ligne;	
    	}
    	while (!fichier.eof());
    	for (i=1;i<=dim[1];i++)
    	{
    		for (j>i;j<=dim[1];j++)
    		{
    			covariance(i,j)=covariance(j,i);
    		}
    	}
    	Matrix C;
    	C=chol(covariance);
    	cout << "le premier element de la matrice de Cholesky est:" << C(1,1) << "\n";
    }
    Le message d'erreur est le suivant :

    ------ Début de la régénération globale*: Projet*: CorrelSimul, Configuration*: Release Win32 ------

    Supprimer des fichiers de sortie et des fichiers intermédiaires du projet 'CorrelSimul', configuration 'Release|Win32'.
    Compilation...
    Stdafx.cpp
    Compilation...
    Submat.cpp
    sort.cpp
    Solution.cpp
    Sl_ex.cpp
    Newmatex.cpp
    Newmat9.cpp
    Newmat8.cpp
    Newmat7.cpp
    Newmat6.cpp
    Newmat5.cpp
    Newmat4.cpp
    Newmat3.cpp
    Newmat2.cpp
    Newmat1.cpp
    Myexcept.cpp
    evalue.cpp
    essai.cpp
    essai.cpp(17) : error C2065: 'ligne'*: identificateur non déclaré
    essai.cpp(18) : error C3861: 'ligne': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(21) : warning C4804: '%'*: utilisation risquée du type 'bool' dans l'opération
    essai.cpp(24) : error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'covariance'
    essai.cpp(24) : error C3861: 'ligne': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(27) : error C2541: 'delete'*: impossible de détruire des objets qui ne sont pas des pointeurs
    essai.cpp(27) : error C3861: 'ligne': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(32) : error C2065: 'j'*: identificateur non déclaré
    essai.cpp(32) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(32) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(34) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    essai.cpp(34) : error C3861: 'j': identificateur introuvable, même avec une recherche qui dépend de l'argument
    CorrelSimul.cpp
    Cholesky.cpp
    Bandmat.cpp

    Le journal de génération a été enregistré à l'emplacement "file://d:\Documents and Settings\Amor\My Documents\Visual Studio Projects\correlation_c++\Release\BuildLog.htm"
    CorrelSimul - 11 erreur(s), 1 avertissement(s)


    ---------------------- Terminé ----------------------

    Régénération globale*: 0 a réussi, 1 a échoué, 0 a été ignoré
      0  0

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/11/2014, 17h04
  2. Réponses: 8
    Dernier message: 09/12/2011, 18h48
  3. [Débutant] Lire un fichier contenant une matrice
    Par abdousoft dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/05/2011, 12h14
  4. lire et écrire un fiche text contenant une matrice
    Par yuki89 dans le forum MATLAB
    Réponses: 1
    Dernier message: 18/12/2008, 11h58
  5. Lire un fichier contenant une matrice
    Par shmeta dans le forum Débuter
    Réponses: 5
    Dernier message: 01/12/2008, 10h57

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