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

MATLAB Discussion :

Operations matricielles 3D


Sujet :

MATLAB

  1. #1
    jean_pierr
    Invité(e)
    Par défaut Operations matricielles 3D
    Bonjour,

    j ai un vecteur ligne X de taille 1*4000. qui contient 4000 angles.
    j ai besoin de construire une matrice 3D qui contient 4000 matrices de rotations(pour chaque angle on a une matrice) sans utiliser les boucles car ils sont lourdes dans ce cas, merci de m'aider si vous avez une idee.

  2. #2
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Quelle est la matrice associée à chaque angle ???
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  3. #3
    jean_pierr
    Invité(e)
    Par défaut
    merci a votre reponse.

    j'ai 4000 angles enregistrer dans un vecteur x de taille 1*4000.

    pour chaque angle je vais calculer une matrice de rotation R=[cos t -sin t; sin t cos t].

    supposons que t=X(1)=90
    R=[0 -1;1 0].
    j 'ai besoin de calculer 4000 matrices comme ci dessus en un seul coup sans utiliser les boucles et on peut utiliser une matrice 3 D W(2,2,4000) pour enregistrer les resultat. merci de m'aider.

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    une matrice 3D
    Une matrice est nécessairement à deux dimensions. Dans ton cas, il s'agit peut-être plutôt d'un tableau.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    jean_pierr
    Invité(e)
    Par défaut
    par abus de language on dit matrice,

    je sais bien qu'on dit un tensor pour une superposition des plusieurs matrices 2D.

    comme dans mon cas je vais superposer 4000 matrices de taille 2*2.
    merci

  6. #6
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Tu regardes ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    t=[0 pi/4 pi]
    R=[cos(t);-sin(t);sin(t);cos(t)]
    R=reshape(R,2,2,3)
    dans ton cas tu remplaces le 3 par numel(t) (égale 4000)
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  7. #7
    jean_pierr
    Invité(e)
    Par défaut
    Grand merci,

    tu as une petite faute : R=[cos(t) ; sin(t) ; -sin(t) ; cos(t)]. grand merci c'est une bonne solution. Je crois que n'importe quelle boucle peut être changée par un calcul compact. Grand merci
    Dernière modification par Invité ; 12/08/2012 à 17h29. Motif: Orthographe + balises

  8. #8
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    Citation Envoyé par jean_pierr Voir le message
    Grand merci,
    tu as une petite faute : R=[cos(t) ; sin(t) ; -sin(t) ; cos(t)]
    Oui j'ai pas fait attention

    Citation Envoyé par jean_pierr Voir le message
    Je crois que n'importe quelle boucle peut être changée par un calcul compact. Grand merci
    Je ne pense pas, si non tu aurais dû pas trouver la syntaxe
    Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message

  9. #9
    Membre éprouvé
    Inscrit en
    Août 2010
    Messages
    1 124
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 1 124
    Points : 1 277
    Points
    1 277
    Par défaut
    Je crois que n'importe quelle boucle peut être changée par un calcul compact.
    Oui, ca se démontre. Cela dit attention:

    - C'est de moins en moins lisible pour les calculs compliqués (dès que le corps d'une itération dépend des itérations précédentes)

    - Si par exemple l'itération dépend de toutes les itérations passées, la taille mémoire de l'opération vectorielle va exploser (j'ai souvent du transformer un code vectorisé en boucle pour éviter les 'out of memory')

    - Les boucles ont été optimisées dans les dernières versions de matlab et rivalisent avec les cellfun/arrayfun

    - les boucles peuvent être dispatchées sur plusieurs processeurs via parfor, ce qui démultiplie les performances . Donc dans le cas de boucles dont les itérations sont indépendantes, l'argument performance n'est plus du tout convaincant.

  10. #10
    jean_pierr
    Invité(e)
    Par défaut
    j'ai pas compris parfaitement tes remarques!
    Dernière modification par jean_pierr ; 16/08/2012 à 18h41.

Discussions similaires

  1. operations mathematiques dans une variable matricielle Sous VBA
    Par Mr_JF dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/01/2008, 13h16
  2. Calcul Matriciel en PL/SQL
    Par PpPool dans le forum PL/SQL
    Réponses: 4
    Dernier message: 02/02/2004, 10h11
  3. [JSP] thread ? Message d'avancement des operations en cours
    Par buffyann dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 18/12/2003, 11h39
  4. operation sur des alias
    Par 74160 dans le forum Requêtes
    Réponses: 4
    Dernier message: 24/11/2003, 18h19
  5. Réponses: 8
    Dernier message: 21/11/2003, 18h38

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