Skip to content

Commit 0033bf3

Browse files
committed
Projection function
1 parent f1c9770 commit 0033bf3

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/projection.js

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Matrix, WrapperMatrix2D } from './index';
1+
import { Matrix } from './index';
22

33
/**
44
* Compute the projection of a vector into a
@@ -7,5 +7,20 @@ import { Matrix, WrapperMatrix2D } from './index';
77
* @return {matrix} projection of vector
88
*/
99
export function projection(vector, vectorspace) {
10-
return (vector);
10+
if (vector.rows < vector.columns) {
11+
vector = vector.transpose();
12+
}
13+
let projVector = Matrix.zeros(vector.rows(), 1);
14+
let coef = 1;
15+
16+
if (vector.rows > 1 && vector.columns > 1) {
17+
console.log('ERROR : Vector is not a 1*n vector');
18+
return (0);
19+
} else {
20+
for (let i = 0; i < vectorspace.rows(); i++) {
21+
coef = vector.dot(vectorspace.getRow(i)) / vectorspace.getRow(i).dot(vectorspace.getRow(i));
22+
projVector += vectorspace.getRow(i).transpose().mulColumn(0, coef);
23+
}
24+
return (projVector);
25+
}
1126
}

0 commit comments

Comments
 (0)