Red de conocimientos turísticos - Información de alquiler - Programación en C relacionada con la multiplicación de matrices

Programación en C relacionada con la multiplicación de matrices

ublas bajo boost ya proporciona una biblioteca de plantillas lista para usar. Escribí una muestra para usted, que básicamente cubre las operaciones básicas de la matriz

// MatrixSample.cpp: define el punto de entrada de la aplicación de consola.

//

#include "stdafx.h"

#include lt;time.hgt;

#include lt;iostreamgt ;

#include lt;boost/numeric/ublas/matrix.hppgt;

#include lt;boost/numeric/ublas/io.hppgt;

#define UB boost::numeric::ublas

templatelt.typename _Matrixgt;

void initMatrix(_Matrixamp; mtVal)

{

time_t nTime; time(amp; nTime); srand((unsigned int)nTime);

/// Asignación, tamaño1 es la fila y tamaño2 es la columna.

for (int i = 0; i lt; mtVal.size1 (); i)

{

for (int j = 0; j lt; mtVal.size2 (); j)

{

mtVal(i, j) = i * j;

}

}

}

int _tmain(int argc, _TCHAR* argv[])

{

/// Definir una matriz doble de 3x3 Es el tipo de elemento, que también puede ser int.

UB:: Matrixlt; double gt; mtVal(3, 3);

initMatrix(mtVal);

/// Simplemente genera la matriz. Porque Matrix IO ya proporciona sobrecarga de flujo.

std::cout lt;lt; "Mi primera matriz:" lt;lt; mtVal lt;lt; std::endl; matemáticas.

{

UB:: matrizlt; mtLeft(4, 3), mtRight(3, 4);

initMatrix(mtLeft); p>

p>

initMatrix(mtRight);

/// Matriz. La multiplicación produce una matriz de 4x4.

UB::matrixlt; doublet; mtProdRes = UB::prod(mtLeft, mtRight);

std::cout lt;lt; "Resultado de la multiplicación de matrices:" lt;lt ; UB:: prod(mtLeft, mtRight) lt; lt; std:: endl;

}

{

UB:: matrizlt; (3, 3), mtRight(3, 3);

initMatrix(mtLeft);

initMatrix(mtRight);

/// Suma de matriz( Las matrices deben tener las mismas dimensiones, de lo contrario se activa la afirmación).

UB: :matrixlt; doublet; mtPlusRes = mtLeft mtRight;

std: :cout lt;lt; "Resultado de la suma de la matriz:" lt;lt; std::endl;

}

{

UB::matrixlt; mtLeft(3, 3), mtRight(3, 3);

initMatrix(mtLeft);

initMatrix(mtRight);

/// Agrega una matriz (las matrices deben tener las mismas dimensiones, de lo contrario la afirmación será activado).

UB: :matrixlt; doublet; mtMinusRes = mtLeft - mtRight;

std: :cout lt;lt; "Resultado de la resta de matrices:" lt;lt; ; std::endl;

}

devuelve 0;