new Vector([arg])

Vector - array of doubles.

Example

``````var la = require('qminer').la;
// create a new empty vector
var vec = new la.Vector();
// create a new vector
var vec2 = new la.Vector([1, 2, 3]);``````

Parameter

Name Type Optional Description

arg

(Array of number or module:la.Vector)

Yes

Constructor arguments. There are two ways of constructing:
1. using an array of vector elements. Example: using `[1, 2, 3]` creates a vector of length 3,
2. using a vector (copy constructor).

Property

length

Gives the length of vector. Type `number`.

Example

``````var la = require('qminer').la;
// create a new vector
var x = new la.Vector([1, 2, 3]);
// get the length of the vector
var len = x.length; // returns 3``````

Methods

at(index) → number

Returns element at index.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// get the element at index 1
var el = vec[1];``````

Parameter

Name Type Optional Description

index

number

Element index (zero-based).

Returns

`number`B Vector element.

cosine(vec) → number

Returns the cosine between the two vectors.

Example

``````var la = require('qminer').la;
// create two new vectors
var x = new la.Vector([1, 0]);
var y = new la.Vector([0, 1]);
// calculate the cosine between those two vectors
var num = x.cosine(y); // returns 0``````

Parameter

Name Type Optional Description

vec

module:la.Vector

Second vector.

Returns

`number`B The cosine between the two vectors.

diag()

Creates a dense diagonal matrix out of the vector.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([4, 5, -1]);
// create a dense matrix with the diagonal equal to vec
var mat = vec.diag();``````

getMaxIdx() → number

Gets the index of the maximal element.

Returns

`number`B Index of the maximal element in the vector. // import la modules var la = require('qminer').la; // create a new vector var vec = new la.Vector([1, 2, 3]); // get the index of the maximum value var idx = vec.getMaxIdx();

inner(vec) → number

Computes the inner product.

Example

``````var la = require('qminer').la;
// create two new vectors
var x = new la.Vector([1, 2, 3]);
var y = new la.Vector([4, 5, -1]);
// get the inner product of the two vectors
var prod = x.inner(y); // returns 11``````

Parameter

Name Type Optional Description

vec

module:la.Vector

Other vector.

Returns

`number`B Inner product between the instance and the other vector.

Loads the vector from input stream (binary deserialization).

Example

``````// import fs module
var fs = require('qminer').fs;
var la = require('qminer').la;
// create an empty vector
var vec = new la.Vector();

Parameter

Name Type Optional Description

fin

module:fs.FIn

Input stream.

Returns

`module:la.Vector`B Self. The vector is filled using the input stream `fin`.

Loads the vector from input stream (ascii deserialization).

Example

``````// import fs module
var fs = require('qminer').fs;
var la = require('qminer').la;
// create an empty vector
var vec = new la.Vector();

Parameter

Name Type Optional Description

fin

module:fs.FIn

Input stream.

Returns

`module:la.Vector`B Self. The vector is filled using the input stream `fin`.

minus(vec) → module:la.Vector

Vector substraction.

Example

``````var la = require('qminer').la;
// create two new vectors
var x = new la.Vector([1, 2, 3]);
var y = new la.Vector([4, 5, -1]);
// substract the vectors
var z = x.minus(y);``````

Parameter

Name Type Optional Description

vec

module:la.Vector

Second vector.

Returns

`module:la.Vector`B The difference of the instance and the other vector.

multiply(val) → module:la.Vector

Multiplies the vector with a scalar.

Example

``````var la = require('qminer').la;
// create a new vector
var x = new la.Vector([4, 5, -1]);
// multiply the vector with the scalar 3
var y = x.multiply(3);``````

Parameter

Name Type Optional Description

val

number

Scalar.

Returns

`module:la.Vector`B Product of the vector and scalar.

norm() → number

Calculates the norm of the vector.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([4, 5, -1]);
// get the norm of the vector
var norm = vec.norm();``````
Returns

`number`B The norm of the vector.

normalize() → module:la.Vector

Normalizes vector.

Example

``````var la = require('qminer').la;
// create a new vector
var x = new la.Vector([4, 5, -1]);
// normalize the vector
x.normalize();``````
Returns

`module:la.Vector`B Self. The vector is normalized.

outer(vec) → module:la.Matrix

Creates a dense matrix A by multiplying two vectors x and y: `A = x * y^T`.

Example

``````var la = require('qminer').la;
// create two new vectors
var x = new la.Vector([1, 2, 3]);
var y = new la.Vector([4, 5]);
// create the outer product of these vectors
var A = x.outer(y); // creates the dense matrix [[4, 5], [8, 10], [12, 15]]``````

Parameter

Name Type Optional Description

vec

module:la.Vector

Second vector.

Returns

`module:la.Matrix`B Matrix obtained by the outer product of the instance and second vector.

plus(vec) → module:la.Vector

Example

``````var la = require('qminer').la;
// create two new vectors
var x = new la.Vector([1, 2, 3]);
var y = new la.Vector([4, 5, -1]);
// sum the vectors
var z = x.plus(y);``````

Parameter

Name Type Optional Description

vec

module:la.Vector

Second vector.

Returns

`module:la.Vector`B Sum of the instance and the second vector.

print()

Prints the vector on-screen.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// print the vector
// For this example it prints:
// [1, 2, 3]
vec.print();``````

push(val) → number

Adds an element to the end of the vector.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// push an element to the vector
vec.push(10);``````

Parameter

Name Type Optional Description

val

number

The element added to the vector.

Returns

`number`B The new length property of the object upon which the method was called.

pushV(vec) → number

Appends a second vector to the first one.

Example

``````// import la module
var la = require('qminer').la;
// create two new vectors
var vec = new la.Vector([1, 2, 3]);
var vec2 = new la.Vector([4, 5]);
// append the two vectors
vec.pushV(vec2);``````

Parameter

Name Type Optional Description

vec

module:la.Vector

The appended vector.

Returns

`number`B The new length property of the vectors.

put(idx, val) → module:la.Vector

Sets an element in vector.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// set the first element to 10
vec.put(0, 10);``````

Parameters

Name Type Optional Description

idx

number

Index (zero based).

val

number

Element value.

Returns

`module:la.Vector`B Self. The values at index `idx` has been changed to `val`.

save(fout) → module:fs.FOut

Saves the vector as output stream (binary serialization).

Example

``````// import fs module
var fs = require('qminer').fs;
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// open write stream
var fout = fs.openWrite('vec.dat');
// save vector and close write stream
vec.save(fout).close();``````

Parameter

Name Type Optional Description

fout

module:fs.FOut

Output stream.

Returns

`module:fs.FOut`B The output stream `fout`.

saveascii(fout) → module:fs.FOut

Saves the vector as output stream (ascii serialization).

Example

``````// import fs module
var fs = require('qminer').fs;
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// open write stream
var fout = fs.openWrite('vec.dat');
// save matrix and close write stream
vec.saveascii(fout).close();``````

Parameter

Name Type Optional Description

fout

module:fs.FOut

Output stream.

Returns

`module:fs.FOut`B The output stream `fout`.

shuffle() → module:la.Vector

Randomly reorders the elements of the vector (inplace).

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([-2.0, 1.0, 3.0]);
// shuffle the elements
vec.shuffle();``````
Returns

`module:la.Vector`B Self. The elements are randomly reordered.

sort([arg]) → module:la.Vector

Sorts the vector (in place operation).

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([-2.0, 1.0, 3.0]);
// sort ascending
vec.sort(); // sorts to: [-2.0, 1.0, 3.0]
// sort using callback
vec.sort(function(arg1, arg2) { return Math.abs(arg1) - Math.abs(arg2); }); // sorts to: [1.0, -2.0, 3.0]``````

Parameter

Name Type Optional Description

arg

(module:la~vectorCompareCb or boolean)

Yes

Sort callback or a boolean ascend flag. Default is boolean and true.

Returns

`module:la.Vector`B Self.
1. Vector sorted in ascending order, if `arg` is boolean and true.
2. Vector sorted in descending order, if `arg` is boolean and false.
3. Vector sorted by using the comparator callback, if `arg` is a module:la~vectorCompareCb.

sortPerm([asc]) → Object

Sorts the vector and returns the sorted vector as well as the permutation.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([-2.0, 1.0, 3.0]);
// sort ascending
var result = vec.sortPerm();
result.vec;  // [-2.0, 1.0, 3.0]
result.perm; // permutation index vector``````

Parameter

Name Type Optional Description

asc

boolean

Yes

Sort in ascending order flag.

Defaults to `true`.

Returns

`Object`B The object `VectorSortResult` containing the properties:
`VectorSortResult.vec` - The sorted vector,
`VectorSortResult.perm` - Permutation vector, where `VectorSortResult.vec[i] = instanceVector[VectorSortResult.perm[i]]`.

sparse() → module:la.SparseVector

Creates the sparse vector representation of the vector.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([4, 5, -1]);
// create the sparse representation of the vector
var spVec = vec.sparse();``````
Returns

`module:la.SparseVector`B The sparse vector representation.

spDiag() → module:la.SparseMatrix

Creates a sparse diagonal matrix out of the vector.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([4, 5, -1]);
// create a sparse matrix with the diagonal equal to vec
var mat = vec.spDiag();``````
Returns

`module:la.SparseMatrix`B Diagonal matrix, where the (i, i)-th element is the i-th element of vector.

splice(start, deleteCount[, ...itemN]) → module:la.Vector

Changes the vector by removing and adding elements.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// splice the vector by removing the last two elements and adding 4, 5
vec.splice(1, 2, 4, 5)// returns vector [1, 4, 5]``````

Parameters

Name Type Optional Description

start

number

Index at which to start changing the array.

deleteCount

number

Number of elements to be removed.

itemN

number

Yes

The element(s) to be add to the array. If no elements are given, splice() will only remove elements from the array.

Value can be repeated.

Returns

`module:la.Vector`B Self. The selected elements are removed/replaced.

subVec(arg) → module:la.Vector

Returns a subvector.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// get the subvector of the first two elements
var subvec = vec.subVec([0, 1]);``````

Parameter

Name Type Optional Description

arg

(Array of number or module:la.IntVector)

Index array or vector. Indices can repeat (zero based).

Returns

`module:la.Vector`B Subvector, where the i-th element is the `arg[i]`-th element of the instance.

sum() → number

Sums the elements in the vector.

Example

``````// import la modules
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// sum all the elements of the vector
var sum = vec.sum();``````
Returns

`number`B The sum of all elements in the instance.

toArray() → Array of number

Copies the vector into a JavaScript array of numbers.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// create a JavaScript array out of vec
var arr = vec.toArray(); // returns an array [1, 2, 3]``````
Returns

`Array of number`B A JavaScript array of numbers.

toMat() → module:la.Matrix

Creates a matrix with a single column that is equal to the vector.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([4, 5, -1]);
// create a matrix representation of the vector
var mat = vec.toMat();``````
Returns

`module:la.Matrix`B The matrix with a single column that is equal to the instance.

toString() → string

Returns the vector as string.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// create vector as string
vec.toString(); // returns '1, 2, 3'``````
Returns

`string`B String representation.

trunc(idx) → module:la.Vector

Deletes elements with sprecific index or more.

Example

``````var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// trunc all elements with index 1 or more
vec.trunc(1); // returns vector [1]``````

Parameter

Name Type Optional Description

idx

number

Index (zero based).

Returns

`module:la.Vector`B Self after truncating.

unshift(...args) → number

Adds elements to the beginning of the vector.

Example

``````// import la module
var la = require('qminer').la;
// create a new vector
var vec = new la.Vector([1, 2, 3]);
// add two elements to the beggining of the vector
var len = vec.unshift(4, 5); // returns 5``````

Parameter

Name Type Optional Description

args

number

One or more elements to be added to the vector.

Value can be repeated.

Returns

`number`B The new length of vector.