in reply to Re^2: Convert matrix formats
in thread Convert matrix formats
I want to make the upper half a symmetrical one to the lower.
Ah! Thought it was too easy. That'll take 2 lines :)
#! perl -slw use strict; use Data::Dump qw[ pp ]; sub fillLTM { my @lt; my $n = 1; push @lt, [ splice @_, 0, $n++ ] while @_; return @lt; } ## read raw data while( my $rawData = <DATA> ) { ## Populate LT matrix my @lt = fillLTM( split ' ', $rawData ); pp \@lt;; for my $y ( 0 .. $#lt -1 ) { push @{ $lt[$y] }, $lt[$_][$y] for $y+1 .. $#{ $lt[-1] }; } pp \@lt;; } __DATA__ 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Produces:
C:\test>junk [ [1], [2, 3], [4, 5, 6], [7, 8, 9, 10] ] [ [1, 2, 4, 7], [2, 3, 5, 8], [4, 5, 6, 9], [7, 8, 9, 10] ] [ [ 1], [ 2, 3], [ 4, 5, 6], [ 7, 8, 9, 10], [11, 12, 13, 14, 15] ] [ [ 1, 2, 4, 7, 11], [ 2, 3, 5, 8, 12], [ 4, 5, 6, 9, 13], [ 7, 8, 9, 10, 14], [11, 12, 13, 14, 15] ]
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: Convert matrix formats
by naturalsciences (Beadle) on Nov 01, 2010 at 15:51 UTC | |
by BrowserUk (Patriarch) on Nov 01, 2010 at 16:13 UTC | |
by naturalsciences (Beadle) on Nov 02, 2010 at 15:53 UTC |