Bonjour,
Je voudrai savoir comment compter le nombre de colonnes d'une matrice à 2 dimensions. Est-ce qu'il n'y aurait pas une fonction en perl pour le faire ??
Merci d'avance.
Bonjour,
Je voudrai savoir comment compter le nombre de colonnes d'une matrice à 2 dimensions. Est-ce qu'il n'y aurait pas une fonction en perl pour le faire ??
Merci d'avance.
Et bien, tout dépend de ta définition de matrice et ton implémentation en Perl...
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
Pour être plus claire je vais donner un exemple :
Voici ce que j'appelle une matrice : elle contient 6 lignes et 5 colonnes. En remplissant une matrice à partir d'un fichier contenant un tableau je peux compter le nombre de lignes mais je ne vois pas comment compter le nombre de colonnes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @matrice = ( [Well, Detector, Task, genes, Ct], [1, np1, Prkcc-Rn00440861_m1, Target, 31 547 514], [2, np1, Esr1-Rn00562166_m1, Target, 30 263 426], [3, np1, Vav1-Rn00562712_m1, Target, 30 333 063], [4, np1, Prkar2a-Rn00709403_m1, Target, 26 796 638], [5, np1, Nos1-Rn00583793_m1, Target, 3 283 813] );
Pour ce qui est de l'implémentation je ne vois pas ce que tu veux dire ...
essaies peut etre ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for ($i=0;$i<scalar@matrice;$i++) { print "ma ligne $i fait ".scalar(@{$matrice[$i])})." colonnes\n"; ## scalar(@{$matrice[$i]}) te donnera le nombre de colonnes de ta ligne $i }
Bonjour,
Ta matrice est donc définie comme une liste de références de tableaux. Avec le formalisme que tu utilises, rien ne permet de s'assurer que tu as un nombre identique de colonnes pour chaque ligne. Tu peux donc faire une estimation du nombre de colonnes, en te basant sur la 1° ligne, mais ce n'est pas une garantie que les autres lignes en comportent autant... En revanche, tu peux savoir le nombre de lignes avec assurance:
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 use strict; use warnings; my @matrice = ( ['Well', 'Detector', 'Task', 'genes', 'Ct'], [1, 'np1', 'Prkcc-Rn00440861_m1', 'Target', '31 547 514'], [2, 'np1', 'Esr1-Rn00562166_m1', 'Target', '30 263 426'], [3, 'np1', 'Vav1-Rn00562712_m1', 'Target', '30 333 063'], [4, 'np1', 'Prkar2a-Rn00709403_m1', 'Target', '26 796 638'], [5, 'np1', 'Nos1-Rn00583793_m1', 'Target', '3 283 813'] ); # nombre de lignes my $rows = scalar(@matrice); # estimation du nombre de colonnes basée uniquement sur la 1° ligne my $cols = scalar(@{ $matrice[0]} ); # affichage printf("la matrice à %d lignes\n", ($rows)); printf("la matrice à %d colonnes\n", ($cols) ); # affichage du nombre réél de colonnes pour chaque ligne print("\n\n"); foreach my $row (@matrice) { my $cols = scalar(@{$row}); printf("* ligne avec %d colonnes\n", ($cols)); }
Je ne répond à aucune question technique par MP.
Si votre problème est réglé, n'oubliez pas Dans tous les cas
Bonsoir,
ça marche !!! . Merci beaucoup !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager