Skip to content

Commit fc31024

Browse files
committed
Merge branch 'stack'
2 parents 2ac7e45 + 05f487e commit fc31024

File tree

1 file changed

+29
-3
lines changed

1 file changed

+29
-3
lines changed

src/util.rs

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,37 @@
1-
//! module for topologcal vector space
2-
//!
31

42
use std::iter::Sum;
5-
use ndarray::{ArrayBase, Data, Dimension, LinalgScalar};
3+
use ndarray::*;
64
use num_traits::Float;
75
use super::vector::*;
86

7+
/// stack vectors into matrix horizontally
8+
pub fn hstack<A, S>(xs: &[ArrayBase<S, Ix1>]) -> Result<Array<A, Ix2>, ShapeError>
9+
where A: NdFloat,
10+
S: Data<Elem = A>
11+
{
12+
let views: Vec<_> = xs.iter()
13+
.map(|x| {
14+
let n = x.len();
15+
x.view().into_shape((n, 1)).unwrap()
16+
})
17+
.collect();
18+
stack(Axis(1), &views)
19+
}
20+
21+
/// stack vectors into matrix vertically
22+
pub fn vstack<A, S>(xs: &[ArrayBase<S, Ix1>]) -> Result<Array<A, Ix2>, ShapeError>
23+
where A: NdFloat,
24+
S: Data<Elem = A>
25+
{
26+
let views: Vec<_> = xs.iter()
27+
.map(|x| {
28+
let n = x.len();
29+
x.view().into_shape((1, n)).unwrap()
30+
})
31+
.collect();
32+
stack(Axis(0), &views)
33+
}
34+
935
pub fn all_close_max<A, Tol, S1, S2, D>(test: &ArrayBase<S1, D>,
1036
truth: &ArrayBase<S2, D>,
1137
atol: Tol)

0 commit comments

Comments
 (0)