|
| Udtrække række fra matrice Fra : F.Larsen |
Dato : 18-04-01 22:34 |
|
Hej eksperter
Haves, et styk 2x4 matrice:
my @x = ([1,2,3,4],[5,6,7,8]);
Hvordan udtrækker man en vilkårlig række, f.eks. #2 :
($a,$b,$c,$d) = ?$?x{1};
?
--
Flemming
| |
Adam Sjøgren (18-04-2001)
| Kommentar Fra : Adam Sjøgren |
Dato : 18-04-01 23:55 |
|
On Wed, 18 Apr 2001 23:34:26 +0200, F Larsen wrote:
> Hej eksperter
Det er ikke mig, men jeg har fidlet mig frem til noget der ligner et svar.
> Haves, et styk 2x4 matrice:
("En matrix, flere matricer". ("En matrice" er en slags støbeform,
plejede de at drille os med når vi kaldte en matrix for en
matrice...))
> my @x = ([1,2,3,4],[5,6,7,8]);
> Hvordan udtrækker man en vilkårlig række, f.eks. #2 : ($a,$b,$c,$d)
> = ?$?x{1};
Flg. gør det ønskede:
virgil $ perl -e '
my @x=([1,2,3,4],[5,6,7,8]);
($a,$b,$c,$d)=@{$x[1]};
print "$a $b $c $d\n";'
5 6 7 8
virgil $
Finten er vist at @x er et array af to references til (anonyme) arrays
- derfor det extra @{} omkring.
Man ku' også gøre det så'n her:
virgil $ perl -e '
my @x=([1,2,3,4],[5,6,7,8]);
my $rr=$x[1];
my ($a,$b,$c,$d)=@$rr;
print "$a $b $c $d\n";'
5 6 7 8
virgil $
(Håber det er rigtigt
Mvh.
--
"All right, what's wrong with you? ...Like I care." Adam Sjøgren
"My foot hurts, doctor." "Your foot hurts?! What asjo@koldfront.dk
kind of stupid problem is that?!"
| |
Stig H. Jacobsen (19-04-2001)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 19-04-01 04:08 |
|
On 19 Apr 2001 00:55:02 +0200, Adam Sjøgren wrote:
> Finten er vist at @x er et array af to references til (anonyme) arrays
> - derfor det extra @{} omkring.
Du kan gøre det lidt mere elegant med '->', f.eks. $x[2]->[0].
my @x=([1,2,3,4],[5,6,7,8]);
foreach my $i (0..$#x) {
foreach my $j (0..$#{$x[$i]}) {
print $x[$i]->[$j], "\n";
}
}
--
Stig
| |
Peter Makholm (19-04-2001)
| Kommentar Fra : Peter Makholm |
Dato : 19-04-01 07:35 |
|
"Stig H. Jacobsen" <nzaa7en001@sneakemail.com> writes:
> Du kan gøre det lidt mere elegant med '->', f.eks. $x[2]->[0].
Jeg er enig i at pil-notation generelt er pænere end en udfoldning af
en række referencer som Adam gør. Men ....
> foreach my $j (0..$#{$x[$i]}) {
.... når du alligevel gør på den måde, mener jeg ikke du har vundet
noget i læsevenlighed over:
print @{$x[1]};
--
hash-bang-slash-bin-slash-bash
| |
Stig H. Jacobsen (19-04-2001)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 19-04-01 10:06 |
|
On 19 Apr 2001 08:34:56 +0200, Peter Makholm wrote:
> ... når du alligevel gør på den måde, mener jeg ikke du har vundet
> noget i læsevenlighed over:
Det kan man sikkert debattere længe - jeg ville bare nævne
muligheden :)
--
Stig
| |
Adam Sjøgren (19-04-2001)
| Kommentar Fra : Adam Sjøgren |
Dato : 19-04-01 13:38 |
|
On Thu, 19 Apr 2001 03:07:58 GMT, Stig H Jacobsen wrote:
> On 19 Apr 2001 00:55:02 +0200, Adam Sjøgren wrote:
>> Finten er vist at @x er et array af to references til (anonyme)
>> arrays - derfor det extra @{} omkring.
> Du kan gøre det lidt mere elegant med '->', f.eks. $x[2]->[0].
Jo - men så føles det ikke som om du udtrækker en række, så føles det
som om du tager et element af gangen explicit.
(Okay, okay ($a,...,$d) er ikke en særligt kamoufleret løkke, men...)
Hvad der er mest elegant kan man vist diskutere i lang tid - godt vi
har det dér slogan...
Mvh.
--
"Ja, så send to pakker, så jeg bedre Adam Sjøgren
kan få øje på dem!" asjo@koldfront.dk
| |
Thorbjørn Ravn Ander~ (19-04-2001)
| Kommentar Fra : Thorbjørn Ravn Ander~ |
Dato : 19-04-01 21:54 |
|
"Stig H. Jacobsen" wrote:
> foreach my $i (0..$#x) {
> foreach my $j (0..$#{$x[$i]}) {
> print $x[$i]->[$j], "\n";
Ville en dobbelt map-løkke være pænere her?
--
Thorbjørn Ravn Andersen "...plus... Tubular Bells!"
http://bigfoot.com/~thunderbear
| |
Thomas Martin Widman~ (19-04-2001)
| Kommentar Fra : Thomas Martin Widman~ |
Dato : 19-04-01 22:08 |
|
Thorbjørn Ravn Andersen <thunderbear@bigfoot.com> writes:
> "Stig H. Jacobsen" wrote:
>
> > foreach my $i (0..$#x) {
> > foreach my $j (0..$#{$x[$i]}) {
> > print $x[$i]->[$j], "\n";
>
> Ville en dobbelt map-løkke være pænere her?
Mener du:
print map { map {"$_\n"} @$_ } @x;
???
Det ser da ikke specielt pænt ud, gør det?
/Thomas
--
Thomas Martin Widmann, Universitetsparken 8, 2., -333, DK-8000 Århus C
+45/702 84 406 viralbus@daimi.au.dk http://www.daimi.au.dk/~viralbus
MA stud. (ling-dat); stud.prog.; aktiv radikal; formand/DK-TUG; T4ONF/TK
Der stemmes om sci.lang.scandinavian (se CFV i news.announce.newgroups)!
| |
|
|