07_transpose_swap_axes/
07_transpose_swap_axes.rs1use matten::Tensor;
6
7fn main() {
8 let m = Tensor::new(vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0], &[2, 3]);
10 println!("original {m:?}");
11 let mt = m.transpose();
12 println!("transposed {mt:?}");
13 assert_eq!(mt.shape(), &[3, 2]);
14
15 assert_eq!(m.t(), mt);
17
18 assert_eq!(m.transpose().transpose(), m);
20 println!("transpose twice == identity: OK");
21
22 let r3 = Tensor::new((1..=24).map(|x| x as f64).collect(), &[2, 3, 4]);
24 let s = r3.swap_axes(0, 2);
25 println!("rank-3 swap_axes(0,2) shape: {:?}", s.shape()); }