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

Algorithmes et structures de données Discussion :

Remplir une matrice 3D à partir d'un tableau 2D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut Remplir une matrice 3D à partir d'un tableau 2D
    Bonjour a tous,

    Voila un moment que je me casse la tete sur un probleme d'algo simple.

    j'ai un tableau de chiffre de dimension 4x151, ces chiffres correspondent a des valeur physique en 3D,nomme x, y z ; 11x11x5. Je souhaite remplir ce tableau en 3D par les valeurs du tableau 2D (4x151).
    Mais depuis 2 heures je tourne autours du pot .. surtout en essayant de lire dans l'ordre (gauche a droite, haut vers le bas) le tableau 2D et remplir la cellule correspondante (x,y,z). Peut-etre serait-il mieux de d'abord transformer mon tableau 2D en un format differend comme 11x55? De la je sais que chaque ligne correspond a un y et donc si je prends 5 paquets de 11x11 je peux remplir mon tableau (x,y,z), mais je ne parviens pas a l'ecrire algorythmiquement parlant. Je sens bien que c'est pas bien mechant..

    Des suggestions, directions ?

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    4 x 151 = 604
    5 x 11 x 11 = 605

    Problème...

    Sinon, pense à "linéariser" tes deux tableaux.
    Tutoriels et FAQ TypeScript

  3. #3
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Le pseudo-code pour ton "algo" :

    Soit m une matrice 5 par 151.
    Soit n une matrice 5 par 11 par 11.

    Soit x,y des entiers.
    On fait varié x de 1 à 5 (ou de 0 à 4 en fonction de l'index de début.)
    On fait varié y de 1 à 151
    Soit a et b des entiers.
    a prend la valeur y modulo 11.
    b prend la valeur y divisé par 11
    On affecte la valeur de m (x,y) à n(x,a,b)
    Fin de la variation de y
    Fin de la variation de X

    Une variante serai de faire varié y de 1 à 11 et z de 1 à 11 et d'accéder à m via (x,y*11+z)

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 216
    Par défaut
    Citation Envoyé par DJEcalcul Voir le message
    Bonjour a tous,

    Voila un moment que je me casse la tete sur un probleme d'algo simple.

    j'ai un tableau de chiffre de dimension 4x151, ces chiffres correspondent a des valeur physique en 3D,nomme x, y z ; 11x11x5. Je souhaite remplir ce tableau en 3D par les valeurs du tableau 2D (4x151).
    Mais depuis 2 heures je tourne autours du pot .. surtout en essayant de lire dans l'ordre (gauche a droite, haut vers le bas) le tableau 2D et remplir la cellule correspondante (x,y,z). Peut-etre serait-il mieux de d'abord transformer mon tableau 2D en un format differend comme 11x55? De la je sais que chaque ligne correspond a un y et donc si je prends 5 paquets de 11x11 je peux remplir mon tableau (x,y,z), mais je ne parviens pas a l'ecrire algorythmiquement parlant. Je sens bien que c'est pas bien mechant..

    Des suggestions, directions ?

    Merci.
    ??? ???


    Je vais recopier ton message, mais avec des nombres plus petits :
    j'ai un tableau de chiffre de dimension 4x11, ces chiffres correspondent a des valeur physique en 3D,nomme x, y z ; 3x3x5. Je souhaite remplir ce tableau en 3D par les valeurs du tableau 2D (4x11).

    On est maintenant sur des données qui peuvent parfaitement être traitées manuellement.

    Essaie de faire ligne à ligne, à la main, les différentes étapes de ton besoin. Tu as un tableau de 4x11 , tu mets des chiffres au hasard dans ce tableau.
    Et à la main, tu construis un tableau de 3x3x5, avec le résultat voulu.

    Soit tu réussis à le faire à la main... et alors tu seras en mesure de reformuler ton besoin de façon compréhensible.
    Soit tu ne réussis pas à le faire à la main, et alors tu verras qu'il y a des incohérences dans ta demande.

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Merci à vous trois.

    En quoi linéariser est plus simple que faire 5 paquets de 11x11 ?

  6. #6
    Rédacteur/Modérateur

    Avatar de yahiko
    Homme Profil pro
    Développeur
    Inscrit en
    Juillet 2013
    Messages
    1 424
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 1 424
    Billets dans le blog
    43
    Par défaut
    Ca fonctionne pour n'importe quelle dimension
    Tutoriels et FAQ TypeScript

  7. #7
    Modérateur
    Avatar de ToTo13
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Janvier 2006
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 793
    Par défaut
    Citation Envoyé par DJEcalcul Voir le message
    Merci à vous trois.

    En quoi linéariser est plus simple que faire 5 paquets de 11x11 ?
    Et selon le langage tu assures la continuité en mémoire, ce qui permet au compilateur d'accélérer fortement le traitement des données.
    Consignes aux jeunes padawans : une image vaut 1000 mots !
    - Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe, mettre les ACCENTS et les BALISES) => ECRIRE clairement et en Français tu DOIS.
    - Le côté obscur je sens dans le MP => Tous tes MPs je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
    - ton poste tu dois marquer quand la bonne réponse tu as obtenu.

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 147
    Par défaut
    Merci a vous, voila de preciseuses infos.

    En revanche je vois pas comment parcourir la "ligne" pour remplir ma matrice 3D.

    Du coup j'ai une matrice A[i*j*k] et je veux remplir B[i,j,k]. Quel indice du tableau ainsi linearise correspond a ma matrice en 3D ?

  9. #9
    Modérateur
    Avatar de kolodz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    2 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 209
    Billets dans le blog
    52
    Par défaut
    Tu dois apprendre les modulo à un moment !

    Pour une une ligne représentant une matrice de taille i*j*k
    l'index X est divisible en :
    i = X/(j*k); // On divise par le nombre d'élément contenu dans une sous matrice
    j = (X/(k)) % j ; // On divise par le nombre d'élément contenu dans une sous matrice et mon fait un modulo pour ne pas avoir la partie i
    k = X/k ; // On fait un modulo par rapport à la taille de la matrice pour n'avoir que la partie k

    C'est la base de manipulation des matrices ! Division sans reste et Modulo !

    Cordialement,
    Patrick Kolodziejczyk.
    Si une réponse vous a été utile pensez à
    Si vous avez eu la réponse à votre question, marquez votre discussion
    Pensez aux FAQs et aux tutoriels et cours.

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

Discussions similaires

  1. [XL-2010] Remplir une matrice à partir de formulaires complétés
    Par soeasytraining dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 11/09/2013, 18h40
  2. Réponses: 6
    Dernier message: 26/03/2009, 19h39
  3. Remplir une matrice à partir d'un vecteur (Suite)
    Par amarion dans le forum MATLAB
    Réponses: 5
    Dernier message: 17/03/2008, 08h23
  4. Remplir une matrice à partir d'un vecteur
    Par amarion dans le forum MATLAB
    Réponses: 2
    Dernier message: 10/03/2008, 12h17
  5. [SQL] Remplir une base SQL à partir d'un tableau à plusieurs lignes et colonnes
    Par Yagami_Raito dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 13/08/2007, 08h56

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