作者giacch (小a)
看板Perl
标题Re: [问题] 大矩阵转置问题
时间Sat Nov 15 14:55:41 2008
若能将 open IN, "< FILENAME"
改成 open IN, "cut -f$_ -d' ' FILENAME |" 会快很多...
#!/usr/bin/perl
$Source = 'data';
$Target = 'test';
# $Source 第一行有 $X 项...
open(IN, $Source) or die "IN: $!\n";
chomp($_ = <IN>);
split(/ /);
$X = $#_ + 1;
close(IN);
# 依序将行转成列
open(OUT, ">$Target") or die "$OUT: $!\n";
for(1 .. $X) {
open(IN, "cut -f$_ -d' ' $Source |") or die "IN: $!\n";
chomp(@Read = <IN>);
close(IN);
printf(OUT "%s\n", join(' ', @Read));
}
close(OUT);
# 计算时间(秒)
printf("%d\n", time() - $^T);
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.232.172.163
※ 编辑: giacch 来自: 118.232.172.163 (11/15 14:56)