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

Discussion :

Conseil pour le choix d'un tableau dynamique 2D

  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Conseil pour le choix d'un tableau dynamique 2D
    Rebonjour les pros du clavier

    Dans le cadre du développement de notre projet avec YannGTT on a besoin de traiter un nombre assez importants de données.
    Par le port série on acquiert environ 800 lignes de mesures sur 3 colonnes ( 3 mesures différentes par lignes, affichées dans 3 colonnes)

    De ces colonnes nous devons faire un certaines nombres de calcul step by step, on arrive donc à une matrice d'environ 800 lignes et 15 colonnes
    J'ai commencé à beaucoup lire là dessus mais je vois des tableaux, du Qvector, etc...

    Selon vous quel serait le choix idéal pour ce genre de calcul ( c'est purement du calcul mathématiques, intégrales par les moindres carrés, calcul vectoriel, dérivés )

    Voila à quoi ressembles ces colonnes avec un calcul manuel sous excel Nom : calcul excel.png
Affichages : 206
Taille : 41,7 Ko

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut


    Pour tout ce qui est calcul pur dans ce genre-là, oublie Qt, ce n'est pas du tout son domaine. Regarde du côté d'Armadillo ou Eigen (http://arma.sourceforge.net/, http://eigen.tuxfamily.org/), par exemple. A priori, dans les techniques que tu mentionnes, tu ne dois pas écrire grand-chose, sinon, c'est que tu le fais mal.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    du coup j'ai installé Eigen qui semble recommandé avec MinGw

    J'ai copié un code pour transformer un csv en matrice Eigen, mais peut importe le format j'ai une erreur expected unqualified-id before numeric constant

    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
    #include "mainwindow.h"
    #include <iostream>
    #include <fstream>
    #include <C:/Users/MPA/Desktop/eigen-3.3.7/eigen-3.3.7/Eigen/Dense>
    #include <C:/Users/MPA/Desktop/eigen-3.3.7/eigen-3.3.7/Eigen/Lu>
    #include <QApplication>
    #include "c:/qt/essaicsv.csv"
     
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        MainWindow w;
        w.show();
        return a.exec();
    }
     
     
     
    using Eigen::MatrixXd;
    using namespace std;
     
    int csvRead(MatrixXd& outputMatrix, const string& fileName, const streamsize dPrec) {
        ifstream inputData;
        inputData.open(fileName);
        cout.precision(dPrec);
        if (!inputData)
            return -1;
        string fileline, filecell;
        unsigned int prevNoOfCols = 0, noOfRows = 0, noOfCols = 0;
        while (getline(inputData, fileline)) {
            noOfCols = 0;
            stringstream linestream(fileline);
            while (getline(linestream, filecell, ',')) {
                try {
                    stod(filecell);
                }
                catch (...) {
                    return -1;
                }
                noOfCols++;
            }
            if (noOfRows++ == 0)
                prevNoOfCols = noOfCols;
            if (prevNoOfCols != noOfCols)
                return -1;
        }
        inputData.close();
        outputMatrix.resize(noOfRows, noOfCols);
        inputData.open(fileName);
        noOfRows = 0;
        while (getline(inputData, fileline)) {
            noOfCols = 0;
            stringstream linestream(fileline);
            while (getline(linestream, filecell, ',')) {
                outputMatrix(noOfRows, noOfCols++) = stod(filecell);
            }
            noOfRows++;
        }
        return 0;
    }
     
    int main()
    {
        int error;
        MatrixXd A;
        error = csvRead(A, "c:/qt/essaicsv.csv",20);
        if (error == 0) {
            cout << "Matrix (" << A.rows() << "x" << A.cols() << "):" << endl;
            cout << A << endl;
            getchar();
        }
        return 0;
     
    }
    Si je fais une matrice 1-1 j'ai cette erreur que sur la première colonne
    Nom : matrice11.png
Affichages : 184
Taille : 3,0 Ko

    si je le fais avec mes données séries j'ai cette erreur partout, je pense à un histoire de séparateur ou autres j'ai beau cherché vu la brêle que je suis en C++ je trouve pas

    Nom : matriceserial.png
Affichages : 188
Taille : 24,9 Ko

    Merci mille fois pour votre aide en tous les cas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Ligne à supprimer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "c:/qt/essaicsv.csv"
    En ce qui concerne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #include <C:/Users/MPA/Desktop/eigen-3.3.7/eigen-3.3.7/Eigen/Dense>
    #include <C:/Users/MPA/Desktop/eigen-3.3.7/eigen-3.3.7/Eigen/Lu>
    il est préférable d'ajouter le chemin de la bibliothèque au projet (INCLUDEPATH += C:/Users/MPA/Desktop/eigen-3.3.7/eigen-3.3.7 dans le .pro) et écrire #include <Eigen/Fichier>.
    Ainsi, si tu en viens à changer de version ou à le transmettre à quelqu'un, il y aura juste à modifier ce chemin dans le .pro.

  5. #5
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Alors après quelques modifs j'ai pu enfin récupérer mon csv sous forme de matrice
    En fait le fait d'enlever la ligne "c:/qt/serial6.csv" a effectivement supprimé l'erreur , sans m'en rendre compte je l'avais fait auparavant mais à la compil rien de ne s'affichait
    J'en concluais que ça marchait pas, mais entre temps j'ai rajouté la mention console dans le .pro

    QT += c++11 console
    et du coup ça m'ouvre une console de style ms-dos avec ma matrice qui apparait, cependant je ne peux plus lancer le programme, c'est soit la console soit la matrice.
    Du coup en supprimant la mention console, à la première et deuxième compilation la matrice s'affiche dans mes sorties de l'applications, au lieu de l'invite Dos, mais le programme ne se lance pas
    Il faut parfois compiler 4-5 fois de suite
    Est ce que je peux utiliser uniquement la sortie d'application au lieu de la console ? c'est normal que ça lance soit l'un soit l'autre ?

    Nom : 2020-04-19 23_02_26-C__Qt_Qt5.14.2_Tools_QtCreator_bin_qtcreator_process_stub.exe.png
Affichages : 183
Taille : 24,0 Ko
    Nom : 2020-04-20 13_20_47-Facebook.png
Affichages : 169
Taille : 8,1 Ko

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut
    Sans console, où veux-tu que ton système d'exploitation affiche la sortie (au sens std::cout) de ton programme ?
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  7. #7
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2020
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Oui je suis d'accord mais je préfèrerais qu'il affiche ça dans la console de sortie ( 2eme exemple sur fond blanc) plutôt que dans la fenêtre ms dos

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 619
    Points : 188 597
    Points
    188 597
    Par défaut
    À toi de le coder, dans ce cas !
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/04/2006, 08h26
  2. [Debutant]Conseils pour le choix d'un environnement de dvpt
    Par etiennegaloup dans le forum Débuter
    Réponses: 10
    Dernier message: 05/04/2006, 21h39
  3. Réponses: 10
    Dernier message: 31/12/2005, 20h10
  4. Réponses: 6
    Dernier message: 07/06/2005, 16h19
  5. Conseil pour un choix de language
    Par guilastro dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 27/04/2004, 14h59

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