feat: + cluster metrics

This commit is contained in:
Volodymyr Orlov
2020-09-22 20:23:51 -07:00
parent 0803532e79
commit 750015b861
15 changed files with 477 additions and 16 deletions
+27
View File
@@ -109,10 +109,26 @@ impl<T: RealNumber + ScalarOperand + AddAssign + SubAssign + MulAssign + DivAssi
self.row(row).to_vec()
}
fn copy_row_as_vec(&self, row: usize, result: &mut Vec<T>) {
let mut r = 0;
for e in self.row(row).iter() {
result[r] = *e;
r += 1;
}
}
fn get_col_as_vec(&self, col: usize) -> Vec<T> {
self.column(col).to_vec()
}
fn copy_col_as_vec(&self, col: usize, result: &mut Vec<T>) {
let mut r = 0;
for e in self.column(col).iter() {
result[r] = *e;
r += 1;
}
}
fn set(&mut self, row: usize, col: usize, x: T) {
self[[row, col]] = x;
}
@@ -669,6 +685,17 @@ mod tests {
assert_eq!(res, vec![2., 5., 8.]);
}
#[test]
fn copy_row_col_as_vec() {
let m = arr2(&[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]);
let mut v = vec![0f32; 3];
m.copy_row_as_vec(1, &mut v);
assert_eq!(v, vec!(4., 5., 6.));
m.copy_col_as_vec(1, &mut v);
assert_eq!(v, vec!(2., 5., 8.));
}
#[test]
fn col_mean() {
let a = arr2(&[[1., 2., 3.], [4., 5., 6.], [7., 8., 9.]]);