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
ArrayDaArray2en 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 contieneNinstancias 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,
carses el nombre de la variable yBMW,ToyotayFerrarison los valores de la matriz. - En la segunda sintaxis, “números” es el nombre de la variable,
i32es el tipo de datos,3es el tamaño de la matriz y1,2y3son los valores de la matriz. - En la tercera sintaxis,
num_arrayes el nombre de la variable,i32es el tipo de datos,3es el tamaño de la matriz,0es el valor predeterminado para los elementos y3es 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.