Hello @redbull2012, Thank you for much for teaching me how to loop through each row and columns of the matrix and compare them. I took your code and modified it a little bit as follows. Let me know what you think about this or if you see any problems with the code ? Atleast during my testing it appears to be working fine.
#!/usr/bin/perl use v5.10; use strict; use warnings; # This script will arrange the rows and columns of a matrix in the sor +ted order :-) my @row; while(my $line = <DATA>) { push @row, [split(/\s+/,$line)]; } foreach my $r1 (0 .. $#row) { #Take 1 row as base, check other rows my @remain = grep !/$r1/,(0 .. $#row); foreach my $r2 (0..$#remain) { # Now loop through the columns of each rows and compare when co +lumns are same. foreach my $c1 (0..$#{$row[$r1]}) { foreach my $c2 (0..$#{$row[$r2]}) { if ($c1==$c2) # Make sure we are swapping values o +n the same column not across the columns if needed { if ($row[$r1][$c1] < $row[$r2][$c2]) { my $temp=$row[$r1][$c1]; $row[$r1][$c1]=$row[$r2][$c2]; $row[$r2][$c2]=$temp; } } } } } } map {print "@$_\n"} @row; #SUPPORT FUNCTION __DATA__ 1014 1 10 1015 51 100 1016 11 50 1017 101 999
In reply to Re^2: Sorting a matrix based on the values of columns
by raghuprasad241
in thread Sorting a matrix based on the values of columns
by raghuprasad241
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |