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

R Discussion :

Parcourir plusieurs matrices


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Par défaut Parcourir plusieurs matrices
    Bonjour à tous (eh oui, c'est encore moi),

    J'ai cette fois un autre souci (pas très difficile à résoudre je pense mais je bloque sur un tout petit truc).
    Alors voilà, j'ai donc 6 matrices 2x2 avec, dans chaque matrice, des valeurs comprises entre 0 et 200.
    Je vais donner un exemple pour que ce soit plus parlant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    mat1 <- matrix(c(150,110,90,140), ncol = 2, byrow = T)
    mat2 <- matrix(c(130,170,30,80), ncol = 2, byrow = T)
    mat3 <- matrix(c(160,150,50,120), ncol = 2, byrow = T)
    mat4 <- matrix(c(170,90,70,20), ncol = 2, byrow = T)
    mat5 <- matrix(c(140,80,20,150), ncol = 2 , byrow = T)
    mat6 <- matrix(c(190,50,40,90), ncol = 2, byrow = T)
    J'aimerais donc parcourir l'ensemble des matrices. Je m'explique:
    Pour par exemple la case [2,2] de chaque matrice, tant que la valeur est supérieure à 100, j'incrémente mon x de 1 (en sachant qu'au départ, x = 0). Dès que la valeur n'est plus supérieure à 100, j'arrête mon compteur et je fais: res <- res + x^2. Ensuite, je remets mon x à 0. Lorsque la valeur redevient supérieure à 100 (tjs dans la case [2,2], je refais comme précédemment et après avoir parcouru l'ensemble de mes matrices, je stocke le résultat dans une matrice 2x2. Pour cette exemple, le résultat à la case 2x2 doit être de 3 (1² + 1² + 1²).

    Mon problème est donc que je n'arrive pas à passer d'une matrice à une autre! Je pense pourtant que ce doit être tout bête.

    Quelqu'un a une idée?

    Merci!

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 22
    Par défaut
    Assigne tes matrices à une liste. Si tes matrices sont m1 et m2
    Ensuite il ne te reste qu'à parcourir la liste et de faire l'opération pour chaque matrice.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Par défaut
    Bon, je dois être vraiment nulle mais je ne vois pas comment faire!

    Voilà mon code:

    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
    mat1 <- matrix(c(150,110,90,140), ncol = 2, byrow = T)
    mat2 <- matrix(c(130,170,30,80), ncol = 2, byrow = T)
    mat3 <- matrix(c(160,150,50,120), ncol = 2, byrow = T)
    mat4 <- matrix(c(170,90,70,20), ncol = 2, byrow = T)
    mat5 <- matrix(c(140,80,20,150), ncol = 2 , byrow = T)
    mat6 <- matrix(c(190,50,40,90), ncol = 2, byrow = T)
    m <-list(mat1,mat2,mat3,mat4,mat5,mat6)
    
    CmdNappeTemps <- function()
    {
    	MatTemps <- matrix(0, ncol=2, nrow=2)
    	for (i in 1:4)
    	{
    		for (j in 1:4)
    		{
    			res <- 0
    			for (l in 1:6)
    			{
    				NbNappe <- 0
    				while (??? > 100 && l < 6)
    				{	
    					NbNappe <- NbNappe + 1
    					l <- l + 1 
    				}
    				res <- res + (NbNappe)^2
    			}
    			MatTemps[i,j] <- res
    		}
    	}
    	return(MatTemps)
    }
    Là où j'ai mis les ???, c'est là que j'aimerais mettre: tant que la case [i,j] de ma matrice l > 100 ...

    Comment faire?

  4. #4
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2009
    Messages : 22
    Par défaut
    sélectionne l'élément i,j de la matrice l.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 14
    Par défaut
    Il me semblait bien que c'était tout bête
    Merci bien, ça marche!

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

Discussions similaires

  1. [Débutant] Importer un fichier ASCII en plusieurs matrices
    Par cil20 dans le forum MATLAB
    Réponses: 6
    Dernier message: 22/11/2007, 18h00
  2. [9i] Parcourir plusieurs fois un curseur
    Par weejungle dans le forum SQL
    Réponses: 8
    Dernier message: 22/05/2007, 16h02
  3. parcourir plusieurs fois un fichier FileInputStream
    Par developpeur_struts dans le forum Struts 1
    Réponses: 1
    Dernier message: 29/03/2007, 20h43
  4. Stocker des données dans plusieurs matrices différentes
    Par setsuko974 dans le forum Langage
    Réponses: 6
    Dernier message: 23/03/2007, 23h48
  5. [MySQL] Parcourir plusieurs fois le résultat de ma requête
    Par borgfabr dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/12/2005, 09h54

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