Struct libmat::mat::Vector [−]
pub struct Vector<T> { /* fields omitted */ }
Expand description
Represents a vector.
Implementations
pub fn to_row_vector(&self) -> Vector<T>
pub fn to_col_vector(&self) -> Vector<T>
Trait Implementations
Vectors can be added by adding their references.
Example
let vec_a = vector![1, 2, 3]; let vec_b = vector![3, 2, 1]; assert_eq!(&vec_a + &vec_b, Vector::new(3, 4));
fn add_assign(&mut self, vector: &Vector<T>)
fn add_assign(&mut self, vector: &Vector<T>)
Performs the +=
operation. Read more
Dividing a vector by a number is the same a multiplying by its inverse.
Example
let vec_a = Vector::new(3, 1_f32); assert_eq!(&vec_a / 2.0, Vector::new(3, 0.5));
Indexing a vectors returns the corresponding entry.
Example
let vec_a = vector![1, 2, 3]; assert_eq!(vec_a[0], 1); assert_eq!(vec_a[1], 2); assert_eq!(vec_a[2], 3);
Single entries of a vector can be manipulated by mutating an indexed vector.
Example
let mut vec_a = Vector::new(3, 1); vec_a[1] = 2; vec_a[2] = 3; assert_eq!(vec_a[0], 1); assert_eq!(vec_a[1], 2); assert_eq!(vec_a[2], 3); assert_eq!(vec_a, vector![1, 2, 3]);
Vectors can also be multiplied with matrices. The result will be a vector.
Example
let mat_a = Matrix::<u32>::one(4); let mat_b = matrix!{1, 2, 3; 4, 4, 3; 2, 1, 3; 4, 1, 2}; let vec_a = vector![4, 5, 6, 7].to_row_vector(); let vec_b = vector![64, 41, 59].to_row_vector(); assert_eq!(&vec_a * &mat_a, vec_a); assert_eq!(&vec_a * &mat_b, vec_b);
Matrices can be multiplied with Vectors by multiplying their references. The dimensions of the two objects need to match like with matrix multiplication.
Example
let v_a = vector![1, 2, 3]; let mat_a = matrix!{1, 2, 3; 4, 5, 6; 7, 8, 9}; let v_b = vector![30, 36, 42].to_row_vector(); assert_eq!(&v_a.to_row_vector() * &mat_a, v_b);
Vectors can be multpilied by multiplying their references.
Example
let vec_a = Vector::new(4, 3); let vec_b = vector![5, 6, 7, 8]; assert_eq!(&vec_a * &vec_b, 78); assert_eq!(&vec_b * &vec_a, 78);
Vectors can be scaled by scaling a reference to a vector.
Example
let vec_a = Vector::new(3, 1); assert_eq!(&vec_a * 2, Vector::new(3, 2));
Vectors can be subtracted by subtracting theri references.
Example
let vec_a = vector![1_i32, 2, 3]; let vec_b = vector![3_i32, 2, 1]; assert_eq!(&vec_a - &vec_b, vector![-2, 0, 2]);
fn sub_assign(&mut self, vector: &Vector<T>)
fn sub_assign(&mut self, vector: &Vector<T>)
Performs the -=
operation. Read more
impl<T> StructuralPartialEq for Vector<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for Vector<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Vector<T> where
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more