行列の計算


 Math::Matrixモジュールで行列が扱えるようになります。
use Math::Matrix;

my $m = new Math::Matrix(
	[1, 2, 3],
	[4, 5, 6],
	[7, 8, 9],
);
my $n = new Math::Matrix(
	[9, 8, 7],
	[6, 5, 4],
	[3, 2, 1],
);

# 行列の内容を表示する
$m->print("M\n");
$n->print("N\n");

# 行列同士の演算
my $a = $m + $n;
my $b = $m - $n;
my $c = $m * $n;
$a->print("+\n");
$b->print("-\n");
$c->print("*\n");

# 行列のサイズ
my $o = new Math::Matrix(
	[1, 2, 3],
	[4, 5, 6],
);
$o->print("O\n");
my ($row, $col) = $o->size;
print "size:($row, $col)\n";

# 転置行列
my $p = $o->transpose;
$p->print("P\n");

# スカラー倍
my $q = $p->multiply_scalar(2);
$q->print("Q\n");

# 値の取得
print "Q(2,1) = ", $q->[1][0]; # 2行1列目の値

関連項目

なし