Go to the first, previous, next, last section, table of contents.

### `newvect`, `vector`, `vect`

`newvect(len[,list])`
`vector(len[,list])`
  :: 長さ len のベクトルを生成する.
`vect([elements])`
  :: elements を要素とするベクトルを生成する.

return
  ベクトル
len
  自然数
list
  リスト
elements
  要素の並び

- `vect` は要素の並びからベクトルを生成する.
- `vector` は `newvect` の別名である.
- `newvect` は長さ len のベクトルを生成する. 第 2 引数がない場合, 各成分は 0 に初期化される. 第 2 引数がある場合, インデックスの小さい成分から, リストの 各要素により初期化される. 各要素は, 先頭から順に 使われ, 足りない分は 0 が埋められる.
- ベクトルの成分は, 第 0 成分から第 len-1 成分となる. (第 1 成分からではない事に注意. )
- リストは各成分が, ポインタを辿る事によってシーケンシャルに 呼び出されるのに対し, ベクトルは各成分が 第一成分からのメモリ上の displacement (変位)によってランダムアクセスで 呼び出され, その結果, 成分のアクセス時間に大きな差が出てくる. 成分アクセスは, リストでは, 成分の量が増えるに従って 時間がかかるようになるが, ベクトルでは, 成分の量に依存せずほぼ一定である.
- Asir では, 縦ベクトル, 横ベクトルの区別はない. 行列を左から掛ければ縦ベクトルとみなされるし, 右から掛ければ横ベクトルと みなされる.
- ベクトルの長さは `size()` によって得られる.
- 函数の引数としてベクトルを渡した場合, 渡された函数は, そのベクトルの成分 を書き換えることができる.

    [0] A=newvect(5);
    [ 0 0 0 0 0 ]
    [1] A=newvect(5,[1,2,3,4,[5,6]]);
    [ 1 2 3 4 [5,6] ]
    [2] A[0];
    1
    [3] A[4];
    [5,6]
    [4] size(A);
    [5]
    [5] length(A);
    5
    [6] vect(1,2,3,4,[5,6]);
    [ 1 2 3 4 [5,6] ]
    [7] def afo(V) { V[0] = x; }
    [8] afo(A)$
    [9] A;
    [ x 2 3 4 [5,6] ]

`参照`
  section `newmat`, `matrix`, section `size`, section `ltov`, section `vtol`.

Go to the first, previous, next, last section, table of contents.