next up previous contents
Next: 行列の代入 Up: ベクトルと行列 Previous: ベクトル, 行列を作る

行列の成分

octave:17> a=rand(3,3)
a =

  0.425986  0.922402  0.534823
  0.629224  0.022539  0.664096
  0.481873  0.095883  0.845331

octave:18> a(1,1)
ans = 0.42599
octave:19> a(1,1)=2;
octave:20> a
a =

  2.000000  0.922402  0.534823
  0.629224  0.022539  0.664096
  0.481873  0.095883  0.845331

octave:21> a(:,1)
ans =

  2.00000
  0.62922
  0.48187

octave:22> a(2,:)
ans =

  0.629224  0.022539  0.664096

octave:23> a(1:2,2:3)
ans =

  0.922402  0.534823
  0.022539  0.664096
ここで, 1:2 は [1,2] の事だったので, 以下のような使い方ができる.
octave> a
a =

  0.425986  0.922402  0.534823
  0.629224  0.022539  0.664096
  0.481873  0.095883  0.845331

octave> a(3,:)
ans =

  0.481873  0.095883  0.845331

octave> a(1,:)
ans =

  0.42599  0.92240  0.53482

octave> a([3,1],:)
ans =

  0.481873  0.095883  0.845331
  0.425986  0.922402  0.534823

octave> a([3,1]',:)
ans =

  0.481873  0.095883  0.845331
  0.425986  0.922402  0.534823

これを使って, ベクトルを等間隔に間引くことも出来る:

octave> a=1:10
a =

   1   2   3   4   5   6   7   8   9  10

octave> b=a.**2
b =

    1    4    9   16   25   36   49   64   81  100

octave> i=1:3:10
i = 1
octave> i=1:3:10
i =

   1   4   7  10

octave> b(i)
ans =

    1   16   49  100
列ベクトルも同様:
octave> b=b';
octave> b(i)
ans =

    1
   16
   49
  100


Toru Sasaki
2001-07-23