引き続き行列の計算の練習
次のようなマトリクスを用意。
> A = [1 2; 3 4; 5 6] A = 1 2 3 4 5 6 > B = [11 12; 13 14; 15 16] B = 11 12 13 14 15 16 > C = [1 1; 2 2] C = 1 1 2 2
マトリクスA と Cのかけ算はつぎのようになる。3x2 と 2x2 のマトリクスなので、3 x 2 のマトリクスになる。
> A * C ans = 5 5 11 11 17 17
マトリクスの要素ごとのかけ算はつぎのように行える
> A A = 1 2 3 4 5 6 > B B = 11 12 13 14 15 16 > A .* B ans = 11 24 39 56 75 96
要素ごとのべき乗
> A A = 1 2 3 4 5 6 > A .^ 2 ans = 1 4 9 16 25 36
要素ごとに徐算
> A A = 1 2 3 4 5 6 > A ./ 2 ans = 0.50000 1.00000 1.50000 2.00000 2.50000 3.00000
その他いろいろ計算
> A A = 1 2 3 4 5 6 > log(A) ans = 0.00000 0.69315 1.09861 1.38629 1.60944 1.79176 > exp(A) ans = 2.7183 7.3891 20.0855 54.5982 148.4132 403.4288 > abs(A) ans = 1 2 3 4 5 6 > -A ans = -1 -2 -3 -4 -5 -6
> v = [1 2 3] v = 1 2 3 > ones(length(v), 1) ans = 1 1 1 > v + ones(length(v), 1) ans = 2 3 4 2 3 4 2 3 4 > v + 1 ans = 2 3 4
> A A = 1 2 3 4 5 6 > A' ans = 1 3 5 2 4 6 > (A')' ans = 1 2 3 4 5 6
最大値
> a = [1 15 2 0.5] a = 1.00000 15.00000 2.00000 0.50000 > max(a) ans = 15 > [val, index] = max(a) val = 15 index = 2
element ごとの数値比較
> a a = 1.00000 15.00000 2.00000 0.50000 > a < 3 ans = 1 0 1 1
element ごとの数値比較。index を返す方法
> a a = 1.00000 15.00000 2.00000 0.50000 > find(a < 3) ans = 1 3 4
縦、横、ななめ、の数の合計数が同じになるマトリクス。
> A = magic(3) A = 8 1 6 3 5 7 4 9 2
> A A = 8 1 6 3 5 7 4 9 2 > [row, col] = find(A >= 7) row = 1 3 2 col = 1 2 3 > A(1,1) ans = 8 > A(3,2) ans = 9 > A(2,3) ans = 7
> a a = 1.00000 15.00000 2.00000 0.50000 > sum(a) ans = 18.500 > prod(a) ans = 15 > floor(a) ans = 1 15 2 0 > ceil(a) ans = 1 15 2 1
列ごとの最大値
> A A = 8 1 6 3 5 7 4 9 2 > max(A, [], 1) ans = 8 9 7
行ごとの最大値
> max(A, [], 2) ans = 8 7 9
単に max(A)だと、列ごとの最大値と同じになる
> max(A) ans = 8 9 7
なので、A に含まれる値全体の最大値を取得したい場合は、次のようにする。
> A A = 8 1 6 3 5 7 4 9 2 > max(max(A)) ans = 9 > max(A(:)) ans = 9
列ごとの合計値
> A = [1 2; 3 4; 5 6] A = 1 2 3 4 5 6 > sum(A, 1) ans = 9 12
行ごとの合計値
> A A = 1 2 3 4 5 6 > sum(A, 2) ans = 3 7 11
> A A = 8 1 6 3 5 7 4 9 2 > A ^ -1 ans = 0.147222 -0.144444 0.063889 -0.061111 0.022222 0.105556 -0.019444 0.188889 -0.102778 > pinv(A) ans = 0.147222 -0.144444 0.063889 -0.061111 0.022222 0.105556 -0.019444 0.188889 -0.102778