Your results should be a 2-D array.
Here is some code to get you started (populated with sample data). You need to figure out how to get your data into this structure:
Yes - there is room for optimization, since distances are symmetric, but, at this point, operational and simple code trumps efficient code that introduces complexity.use strict; use warnings; my @points = ( {X=>79.620, Y=>66, Z=>12.3}, {X=>66.4, Y=>77, Z=>43.1}, {X=>73.6, Y=>55, Z=>93.7} ); my @results; for my $x(0..$#points){ my $p1 = $points[$x]; for my $y (0..$#points){ my $p2 = $points[$y]; my $dist = ( $p1->{X} - $p2->{X} ) **2 + ( $p1->{Y} - $p2->{Y} ) **2 + ( $p1->{Z} - $p2->{Z} ) **2 ; $results[$x][$y] = $dist; } } #------------------- for my $r (@results){ printf "%3.2f\t",$_ for @$r; print "\n"; }
All great truths begin as blasphemies.
― George Bernard Shaw, writer, Nobel laureate (1856-1950)
In reply to Re: Employing loops and constructing a matrix
by NetWallah
in thread Employing loops and constructing a matrix
by doozy
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |