Convertir ArrayD a Array2 en Rust
- Matriz en Rust
- Inicialización y Declaración de Array en Rust
- Matriz ND en Rust
- Matriz 2 en Rust
-
Conversión de
ArrayD
aArray2
en Rust
Este artículo trata sobre la conversión de ArrayD
a Array2
en Rust.
Matriz en Rust
Una matriz es una colección de valores del mismo tipo. Un grupo de la importancia del mismo tipo de datos se denomina matriz.
En la programación de Rust, una matriz es una colección de elementos de tamaño fijo indicada por [T; N]
, donde T
representa el tipo de elemento y N
denota el tamaño constante de tiempo de compilación de la matriz.
Una matriz se puede crear de dos maneras distintas.
- Simplemente una lista de elementos
[x,y,z]
. - Repetición de la expresión
[N, X]
. Esto crea una matriz que contieneN
instancias deX
.
Inicialización y Declaración de Array en Rust
Hay varias sintaxis para crear una matriz en Rust. Algunos de ellos son:
Sintaxis:
Syntax 1:
let var_name = [val_1,val_2,val_3];
Example:
let _cars = ["BMW","Toyota","Ferrari"];
Syntax 2:
let var_name:[dataType;size_of_array] = [val_1,val_2,val_3];
Example:
let _numbers:[i32;3] = [1,2,3];
Syntax 3:
let var_name:[dataType;size_of_array] = [default_value,size_of_array];
Example:
let _num_array:[i32;3] = [0;3];
- En la primera sintaxis,
cars
es el nombre de la variable yBMW
,Toyota
yFerrari
son los valores de la matriz. - En la segunda sintaxis, “números” es el nombre de la variable,
i32
es el tipo de datos,3
es el tamaño de la matriz y1
,2
y3
son los valores de la matriz. - En la tercera sintaxis,
num_array
es el nombre de la variable,i32
es el tipo de datos,3
es el tamaño de la matriz,0
es el valor predeterminado para los elementos y3
es el tamaño de la matriz.
Matriz ND en Rust
La estructura de datos de matriz N-dimensional se utiliza con frecuencia en la computación y el procesamiento científicos.
La caja ndarray
implementa el soporte de matriz N-dimensional
en Rust. Otras cajas hacen un uso extensivo de él.
Matriz 2 en Rust
La matriz 2 es la matriz bidimensional. Se puede crear fácilmente usando la macro arr2
.
El ejemplo de creación de una matriz 2D 3x3
se muestra a continuación.
extern crate ndarray;
use ndarray::arr2;
fn main() {
let mut two_dimensional_array = array2(&[[4, 5, 6],
[10, 11, 12],
[20, 21, 22]]);
array2[[2, 1]] = 10;
println!("The two dimensional array is {:?}", array2);
}
Producción :
The two dimensional array is [[4, 5, 6],
[10, 11, 12],
[20, 21, 22]], shape=[3, 3], strides=[3, 1], layout=Cc (0x5), const ndim=2
Conversión de ArrayD
a Array2
en Rust
La conversión de una matriz a otra es posible con el mismo tipo, pero las dimensiones deben ser diferentes. El error ocurrirá si las dimensiones de la matriz no concuerdan.
Por lo tanto, el número de ejes debe coincidir durante la conversión.
Para convertir una matriz n-dimensional en una matriz 2d:
Podemos seguir el siguiente código si el tipo de variable es ArrayD<f32>
.
let arr2d: Array2<f32> = arr2d.into_dimensionality::<Ix2>()?;
El código anterior es para convertirlo en una variable de tipo Array2<f32>
.
use ndarray::{ArrayD, Ix2, IxDyn};
let array = ArrayD::<f32>::zeros(IxDyn(&[5, 5]));
assert!(array.into_dimensionality::<Ix2>().is_ok());
Arriba está el código para crear una matriz dimensional dinámica y convertirla en una dimensión I * 2
.