Herramientas de usuario

Herramientas del sitio


fw:maths:armadillo

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Próxima revisión
Revisión previa
fw:maths:armadillo [2013/02/19 10:01]
alfred creado
fw:maths:armadillo [2020/05/09 09:25] (actual)
Línea 1: Línea 1:
 ====== Armadillo ====== ====== Armadillo ======
-Librería para realizar operaciones matemáticas como en MATLAB o R desde C++.+  * [[http://​arma.sourceforge.net/​|Página oficial]] 
 +Librería para realizar operaciones matemáticas como en MATLAB o R desde C++. \\ 
 +Para utilizarla, estando bien instalada, únicamente has de incluir la librería ''​armadillo''​. 
 +<code cpp> 
 +#include <​iostream>​ 
 +#include <​armadillo>​ 
 + 
 +using namespace std; 
 +using namespace arma; 
 + 
 +int main(int argc, char** argv) { 
 +  mat A = randu<​mat>​(4,​5);​ 
 +  mat B = randu<​mat>​(4,​5);​ 
 +   
 +  cout << A*B.t() << endl; 
 +   
 +  return 0; 
 +
 +</​code>​ 
 +===== Uso ===== 
 +Todas estas funciones están en el namespace ''​arma'',​ accesible a partir de hacer un include de la librería:​ 
 +<code cpp> 
 +#include <​armadillo>​ 
 +</​code>​ 
 +==== Uso básico ==== 
 +  * ''​mat A = randu<​mat>​(4,​5);'',​ matriz de 5 columnas y 4 filas con valores aleatorios. 
 +  * ''​A(0,​1);'',​ acceso a la primera fila, segunda columna de A. 
 +  * ''​A*B'',​ multiplicación de matrices. 
 +  * ''​A.t()'',​ traspuesta de A. 
 +  * ''​A.n_rows''​ o ''​A.n_cols'',​ devuelven el número de filas y columnas respectivamente. 
 +  * ''​A.col(k)''​ o ''​A.row(j)'',​ devuelven la columna k y la fila j respectivamente. 
 +  * ''​A.cols(p,​ q)''​ o ''​A.rows(p,​ q)'',​ devuelven un rango de filas o de columnas. 
 +  * Para la creación de matrices: 
 +    * ''​A.zeros()''​ o ''​A = zeros<​mat>​(k,​k)'',​ matriz llena de ceros. 
 +    * ''​A.ones()''​ o ''​A = ones<​mat>​(k,​k)'',​ matriz llena de unos. 
 +    * ''​A.eye()''​ o ''​A = eye<​mat>​(k,​k)'',​ matriz con diagonal a uno. 
 +  * Para concatenar matrices: 
 +    * ''​X = join_rows(A,​B)'',​ concatena filas. 
 +    * ''​X = join_cols(A,​B)'',​ concatena columnas. 
 +  * Para crear una matriz manualmente:​ ''​A << 1 << 2 << endr << 3 << 4 << endr;''​ 
 +  * Puedes guardar y cargar una matriz en ASCII con ''​A.save("​A.dat",​ raw_ascii);''​ y ''​A.load("​A.dat",​ raw_ascii);''​. 
 +==== Tipos ==== 
 +=== Vectores === 
 +Se utiliza la clase ''​vec''​. \\ 
 +Podemos indicar el tipo concreto (si vector columna o fila) con ''​colvec''​ o ''​rowvec''​. 
 +  * El siguiente ejemplo crea un vector columna a partir de un array de doubles (vertices) de tres elementos:​ 
 +<code cpp> 
 +vec cv = vec(vertices,​ 3); 
 +cout << cv << endl; 
 +</​code>​ 
 +  * ''​P.fill(3)'',​ substituye todos los valores de P con 3.
fw/maths/armadillo.1361268109.txt.gz · Última modificación: 2020/05/09 09:24 (editor externo)