in reply to printf matrix
G'day madM,
There's a whole series of problems with your post:
- We don't need to see hundreds of data items (you've posted over 500 here); just post sufficient to support whatever issue you're describing.
- You don't show your input data structure (presumably a hashref with the meaningless name $A).
- You don't show the output you want.
- You don't tell us what part of the code you're having difficulties with.
- You show an @aminos array but don't use it in your code.
- Your printf format suggests floating point data but all data shown are integers.
- You've used the repetition operator (x) in two places that suggests you don't fully understand what this is for. It's explained in "perlop: Multiplicative Operators".
Overall, it's very difficult to ascertain what exactly you need help with. Please read the guidelines in "How do I post a question effectively?" to find out how to compose a question that will help us to help you.
As indicated by the printf documentation, you should look at sprintf for information on formats.
Here's a best guess at what you're trying to achieve. If my guess is wrong (which is quite likely), it should at least provide some pointers for improving your code.
#!/usr/bin/env perl use strict; use warnings; my %data = ( A => { A => 5, R => -2, N => -1 }, R => { A => -2, R => 7, N => -1 }, N => { A => -1, R => -1, N => 7 }, ); my @keys = sort keys %data; print ' '; printf "%4s" => $_ for @keys; print "\n"; for my $row (@keys) { print $row; printf "%4s" => $data{$row}{$_} for @keys; print "\n"; }
Output:
A N R A 5 -1 -2 N -1 7 -1 R -2 -1 7
-- Ken
In Section
Seekers of Perl Wisdom