Octaveで行列の全要素の和を求める


このエントリーをはてなブックマークに追加

例として2x3の行列Aを考える。この行列のすべての要素の和を求めたい。

A = [ 1 2 3; 4 5 6 ]

すぐに思いつく方法は以下の2通り。

方法1. sumを2回使う

sum(A)とすると、Aの列ベクトルごとの和が計算され、1x3の行ベクトルになる。さらにもう一度sumを使うと、全要素の和が求まる。

> sum(sum(A))
ans = 21

方法2. Aを縦ベクトルに展開した後sumを使う

A(:)とすると、行列Aの要素が展開されて列ベクトルになる。

> A(:)
ans = 
  1
  4
  2
  5
  3
  6

これを利用すると、以下のように書けば行列の全要素の和が求まる。

> sum(A(:))
ans = 21