Programación en C relacionada con la multiplicación de matrices
// 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;