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 :

comment creer une matrice plus que 2 dimension en c++?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 98
    Par défaut comment creer une matrice plus que 2 dimension en c++?
    bonsoir,

    je veux créer une matrice à n dimension.
    par exemple en matlab lorsque je veux créer(initialiser) plusieurs matrices de nombre inconnu(n) de taille chacun (l,m) donc je fais comme ça
    k = zeros(l,m,n);

    lorsque je veux obtenir la matrice 3 de taille (l,m) juste j'écris k(l,m,3);

    sont les matrices plus que deux dimensions.(comme les feuilles de cahiers l'une sur l'autre juste je connais le numéro de page(n) donc je peux accéder a la page voulu(matrice de taille (l,m))

    je veux faire ça en c++.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 527
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 527
    Par défaut
    Salut,

    Citation Envoyé par AYDIWALID Voir le message
    bonsoir,

    je veux créer une matrice à n dimension.
    par exemple en matlab lorsque je veux créer(initialiser) plusieurs matrices de nombre inconnu(n) de taille chacun (l,m) donc je fais comme ça
    k = zeros(l,m,n);
    en C++ ce n'est pas possible de créer un tableau de taille variable pour la simple raison que les dimensions doivent être connus à la compilation.
    ( en C#/.Net c'est peut-être possible )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int i=2 ;
    int tableau[i,i];
    -------------------Configuration: program - Win32 Debug--------------------
    Compiling...
    main.cpp
    D:\temp\main.cpp(84) : error C2057: expected constant expression
    D:\temp\main.cpp(84) : error C2466: cannot allocate an array of constant size 0
    D:\temp\main.cpp(84) : error C2133: 'tableau' : unknown size
    Error executing cl.exe.
    main.obj - 3 error(s), 0 warning(s)
    Par contre tu as des conteneurs de la STL comme std::vector , tableau de taille dynamique qui fera affaire.
    Regarder aussi dans Boost , il y a probablement un conteneur qui fasse cela..

    http://www.boost.org/doc/libs/1_45_0...doc/index.html

  3. #3
    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
    boost::multi_array, nt2, eigen ont ce genre de choses

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2008
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 98
    Par défaut
    Citation Envoyé par Joel F Voir le message
    boost::multi_array, nt2, eigen ont ce genre de choses
    Merci bien

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Tu m'as tout l'air d'avoir un besoin en traitement d'image... OpenCV aussi contient ce qu'il faut pour bosser sur des matrices et des sous matrices en évitant de réallouer quand ce n'est pas nécessaire, ainsi que tout plein d'autres fonctions bien utiles.

    Si c'est pour de la recherche ou un programme simple pour tes études (si tu en fais), CImg peut aussi faire l'affaire.

  6. #6
    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
    je conseillerais openCV sur un forum C++ le jour ou leur interface C++ sera correctement faite.

    CImg malgré son coté WTF a de trés bon truc aussi.

Discussions similaires

  1. comment creer une matrice Walsh-Hadamard avec c++
    Par dev0077 dans le forum Eclipse C & C++
    Réponses: 1
    Dernier message: 03/10/2007, 11h06
  2. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  3. Réponses: 1
    Dernier message: 11/04/2005, 09h59
  4. Comment creer une bande bootable ?
    Par sdeb dans le forum Administration système
    Réponses: 7
    Dernier message: 13/01/2004, 17h26
  5. [TP]comment creer une disquette bootable (les fichiers)
    Par ludovic5532 dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 25/10/2003, 18h46

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