핵심 기능에는 벡터 또는 행렬을 생성하고 분석하는 메소드가 포함됩니다.
jStat 객체는 아래와 같이 여러 가지 기능을 수행 할 수 있습니다. 모든 경우에 jStat은 항상 자신의 인스턴스를 반환합니다.
jStat( array[, fn] )
기존의 배열 또는 jStat 객체에서 새 jStat 객체를 만듭니다. 예를 들어, 다음을 수행하여 새로운 jStat 행렬을 만들 수 있습니다. :
var matrix = jStat([[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]);
기존의 jStat 객체가 인수로 전달되면 새로운 객체로 복제됩니다. :
var stat1 = jStat([[ 1, 2 ],[ 3, 4 ]]),
stat2 = jStat( stat1 );
생성시 데이터를 변환하려면 함수를 마지막 인수로 전달하십시오. :
jStat([[ 1, 2 ],[ 3, 4 ]], function( x ) {
return x * 2;
});
jStat( start, stop, count[, fn ])
시퀀스를 만들려면 jStat.seq()
에 숫자값들을 넘길때처럼 하면
됩니다. :
var vector = jStat( 0, 1, 5 );
// vector === [[ 0, 0.25, 0.5, 0.75, 1 ]]
함수를 전달하면 시퀀스 값을 변경할 수 있습니다. :
var vector = jStat( 0, 1, 5, function( x ) {
return x * 2;
});
// vector === [[ 0, 0.5, 1, 1.5, 2 ]];
함수에 전달 된 두번째 인수는 갯수 (0부터 시작)입니다. 이를 사용하여 다차원 배열을 만들 수 있습니다. (데이터 플로팅(plotting)에 유용함) :
var betaGraph = jStat( 0, 1, 11, function( x, cnt ) {
return [ jStat.beta.pdf( x, alpha, beta ), cnt ];
});
jStat()
객체 생성 후 데이터를 채울 수 있도록 chainable한 쉬운 방법을 API로 제공합니다.
따라서 rand()
와 같은 메소드로부터 jStat
객체를
생성하는 것은 다음 중 한가지 방법으로 수행 할 수 있습니다. :
// pass the generated random 3x3 matrix to jStat
jStat( jStat.rand( 3 ));
// or create an empty instance that is filled in afterwards
jStat().rand( 3 );
행렬의 행수를 돌려줍니다.
rows( array )
var matrix = [[1,2,3],[4,5,6]];
jStat.rows( matrix ) === 2;
fn.rows( [callback] )
jStat( matrix ).rows() === 2;
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).rows(function( d ) {
// d === 2
// this
});
행렬의 열수를 돌려줍니다.
cols( array )
var matrix = [[1,2,3],[4,5,6]];
jStat.cols( matrix ) === 3;
fn.cols( [callback] )
jStat( matrix ).cols() === 3;
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).cols(function( d ) {
// d === 3
// this
});
행렬의 크기를 갖는 객체를 반환합니다.
dimensions( array )
var matrix = [[1,2,3],[4,5,6]];
jStat.dimensions( matrix ) === { cols: 3, rows: 2 };
fn.dimensions( [callback] )
jStat( matrix ).dimensions() === { cols: 3, rows: 2 };
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).dimensions(function( d ) {
// d === { cols: 3, rows: 2 }
// this
});
행렬의 특정 행을 반환합니다.
row( array, index )
var matrix = [[1,2,3],[4,5,6]];
jStat.row( matrix, 0 ) === [1,2,3];
fn.row( index[, callback] )
jStat( matrix ).row( 0 ) === jStat([1,2,3]);
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).row( 0, function( d ) {
// d === jStat([1,2,3])
// this
});
지정된 열을 열 벡터로 반환합니다.
col( index )
var matrix = [[1,2],[3,4]];
jStat.col( matrix, 0 ) === [[1],[3]];
fn.col( index[, callback] )
jStat( matrix ).col( 0 ) === jStat([[1],[3]]);
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).col( 0, function( d ) {
// d === jStat([[1],[3]])
// this
})
행렬의 대각 원소들을 반환합니다.
diag( array )
var matrix = [[1,2,3],[4,5,6],[7,8,9]];
jStat.diag( matrix ) === [[1],[5],[9]];
fn.diag( [callback] )
jStat( matrix ).diag() === jStat([[1],[5],[9]]);
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).diag(function( d ) {
// d === jStat([[1],[5],[9]])
});
행렬의 비대각 원소들을 반환합니다.
antidiag( array )
var matrix = [[1,2,3],[4,5,6],[7,8,9]];
jStat.antidiag( matrix ) === [[3],[5],[7]];
fn.antidiag( [callback] )
jStat( matrix ).antidiag() === jStat([[3],[5],[7]]);
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).antidiag(function( d ) {
// d === jStat([[3],[5],[7]])
});
행렬을 전치해서 반환합니다.
transpose( array )
var matrix = [[1,2],[3,4]];
jStat.transpose( matrix ) === [[1,3],[2,4]];
fn.transpose( [callback] )
jStat( matrix ).transpose() === [[1,3],[2,4]];
또는 콜백을 전달하여 계산을 비동기적으로 실행하고 계산을 전달하십시오. 이
방식에 의해, jStat 객체에의 메소드의 연속 체인이 가능하게 됩니다. 그리고 콜백
안에서 this
는 호출하는 jStat 객체를 참조합니다.
jStat( matrix ).transpose(function( d ) {
// d === jStat([[1,3],[2,4]])
})
함수를 모든 값에 매핑하고 새 객체를 반환합니다.
map( array, fn )
var matrix = [[1,2],[3,4]];
jStat.map( matrix, function( x ) {
return x * 2;
});
// returns [[2,4],[6,8]]
fn.map( fn )
jStat( matrix ).map(function( x ) {
return x * 2;
});
함수를 반복적으로 값들에 누적되게 적용하고 새 객체를 반환합니다.
cumreduce( array, fn )
var matrix = [[1,2],[3,4]];
jStat.cumreduce( matrix, function( a, b ) {
return a + b;
});
// returns [[1,3],[3,7]]
fn.cumreduce( fn )
jStat( matrix ).cumreduce(function( a, b ) {
return a + b;
});
함수를 배열에 직접 매핑합니다. 기존 배열의 값이 바뀌게 됩니다.
alter( array, fn )
var matrix = [[1,2],[3,4]];
jStat.alter( matrix, function( x ) {
return x * 2;
});
// matrix === [[2,4],[6,8]]
fn.alter( fn )
var matrix = [[1,2],[3,4]];
jStat( matrix ).alter( function( x ) {
return x * 2;
});
제공된 함수를 사용하여 열과 행 행렬을 만듭니다. col
이 생략된 경우
기본값은 row
입니다.
create( row[, col], fn )
jStat.create( 2, function( row, col ) {
return row + col;
});
// returns [[0,1],[1,2]]
fn.create( row[, col], fn )
jStat 인스턴스에서 행렬을 만드려면 이런 방법을 사용하세요.
jStat().create( 2, function( row, col ) {
return row + col;
});
// returns jStat([[0,1],[1,2]])
모두 0으로 구성된 열과 행 행렬을 만듭니다. col
이 생략된 경우
기본값은 row
입니다.
zeros( row[, col] )
jStat.zeros( 2 );
// returns [[0,0],[0,0]]
fn.zeros( row[, col] )
jStat 인스턴스에서 행렬을 만드려면 이런 방법을 사용하세요.
jStat().zeros( 2 );
// returns jStat([[0,0],[0,0]])
모두 1로 구성된 열과 행 행렬을 만듭니다. col
이 생략된 경우
기본값은 row
입니다.
ones( row[, col] )
jStat.zeros( 2 );
// returns [[0,0],[0,0]]
fn.ones( row[, col] )
jStat 인스턴스에서 행렬을 만드려면 이런 방법을 사용하세요.
jStat().ones( 2 );
// returns jStat([[0,0],[0,0]])
정규 분포 난수 행렬을 만듭니다. col
이 생략 된 경우 기본값은
row
입니다.
rand( row[, col] )
jStat.rand( 3 );
fn.rand( row[, col] )
jStat 인스턴스에서 행렬을 만드려면 이런 방법을 사용하세요.
jStat().rand( 3 );
단위 행렬을 만듭니다. col
이 생략 된 경우 기본값은
row
입니다.
identity( row[, col] )
jStat.identity( 2 );
// returns [[1,0],[0,1]]
fn.identity( row[, col] )
jStat 인스턴스에서 행렬을 만드려면 이런 방법을 사용하세요.
jStat().identity( 2 );
벡터 또는 행렬의 모든 값을 0으로 설정합니다.
clear( array )
var tmp = [1,2,3];
jStat.clear( tmp );
// tmp === [0,0,0]
fn.clear( [callback] )
jStat( 0, 1, 3 ).clear();
// returns [[0,0,0]]
콜백이 전달되면 원본 객체는 변경되지 않습니다.
var obj = jStat( 0, 1, 3 );
obj.clear(function() {
// this === [ 0, 0, 0 ]
});
// obj === [ 0, 0.5, 1 ]
매트릭스가 대칭인지 테스트합니다.
symmetric( array )
jStat.symmetric([[1,2],[2,1]]) === true
fn.symmetric( callback )
jStat([[1,2],[2,1]]).symmetric() === true
chainability를 유지하기 위해 콜백을 전달할 수 있습니다.
jStat([[1,2],[2,1]]).symmetric(function( result ) {
// result === true
});
jStat 라이브러리 전체에서 사용되는 유틸리티
IEEE 754 floating point calculation correction(부동 소수점 계산 보정)에 대한 소수점 이동을 계산합니다.
arg
가 배열인지 테스트합니다.
arg
가 함수인지 테스트합니다.
arg
숫자이고 NaN
이 아닌지 테스트합니다.