use bitmatrix::BitMatrix;
use crate::OneHot;
pub fn vertical<T: OneHot>(data: &[T]) -> BitMatrix {
let mut matrix = BitMatrix::new(
T::ONEHOT_LEN,
data.len(),
);
for (transaction, record) in data.iter().enumerate() {
for (item, value) in record.onehot().enumerate() {
matrix[item].set(transaction, value);
}
}
matrix
}
pub fn horizontal<T: OneHot>(data: &[T]) -> BitMatrix {
let mut matrix = BitMatrix::new(
data.len(),
T::ONEHOT_LEN,
);
for (transaction, record) in data.iter().enumerate() {
for (item, value) in record.onehot().enumerate() {
matrix[transaction].set(item, value);
}
}
matrix
}