/ / Transposition de la matrice en perl - perl, matrice

Transposition de la matrice en perl - perl, matrice

J'essaie d'effectuer une transposition sur une donnée contenue dans un fichier. Les données sont les suivantes:

1 2 3 4 5

2 3 4 5 6

4 5 6 7 9

4 3 7 6 9

Je reçois le résultat comme suit, ce qui est incorrect. Je ne reçois pas l'erreur dans le code à cause de laquelle la dernière colonne n'est pas transposée correctement. Toute solution...

entrer la description de l'image ici

Code:

#!/usr/bin/perl
use strict;
use warnings;

my @dependent;    # matrix of dependent variable

# Reading the data from text file to the matrix
open( DATA, "<example.txt" ) or die "Couldn"t open file , $!"; #depenedent

# Storing data into the array in matrix form
while ( my $linedata = <DATA> ) {
push @dependent, [ split "t", $linedata ];
}
my $m = @dependent;
#print  "$mn";
my $n = @{ $dependent[1] };
#print  $n;


#print "Matrix of dependent variables Y n";
for ( my $i = 0; $i < $m; $i++ ) {
for ( my $j = 0; $j < $n; $j++ ) {
#print $dependent[$i][$j]," ";
}
#print "n";
}

my @transpose;
for ( my $i = 0; $i < $n; $i++ ) {
for ( my $j = 0; $j < $m; $j++ ) {
$transpose[$i][$j] = $dependent[$j][$i];
}
}


for ( my $i = 0; $i < $n; $i++ ) {
for ( my $j = 0; $j < $m; $j++ ) {
print $transpose[$i][$j], " ";
}
print "n";
}

Réponses:

6 pour la réponse № 1

chomp vos données lorsque vous les lisez, avant de les scinder; votre sortie étrange est provoquée par le fait que le dernier élément de chaque ligne de l'entrée est toujours associé à une nouvelle ligne.

Juste comme une note de côté, DATA n’est pas un très bon nom pour choisir un descripteur de fichier; perl définit déjà un descripteur de fichier intégré spécial nommé DATA pour lire des données qui sont incorporées dans un script ou un module, utiliser ce nom pour vous-même peut prêter à confusion :)