Property

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 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 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 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 Inner product between the instance and the other vector.

load(fin) → module:la.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();
// open a read stream
var fin = fs.openRead('vec.dat');
// load the vector
vec.load(fin);

Parameter

Name Type Optional Description

fin

module:fs.FIn

 

Input stream.

Returns

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

loadascii(fin) → module:la.Vector

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();
// open a read stream
var fin = fs.openRead('vec.dat');
// load the matrix
vec.loadascii(fin);

Parameter

Name Type Optional Description

fin

module:fs.FIn

 

Input stream.

Returns

module:la.Vector 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 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 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 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 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 Matrix obtained by the outer product of the instance and second vector.

plus(vec) → module:la.Vector

Vector addition.

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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 The new length of vector.