2016-10-08 15 views
0

私は2x2と2x1の行列を持ち、それらに乗算したい。これはコードです。行列乗算2x2 2x1 C#

for (i = 0; i < row; i++) 
     { 
      for (j = 0; j < col; j++) 
      { 
       for (k = 0; k < 2; k++) 
       { 
        mulMatrix[k] = Mat1[i, j] * Mat2[j]; 
       } 
      } 
     } 

答えて

0

.NETは既にこのためのライブラリを持っていると思います。ここで読む:https://msdn.microsoft.com/en-us/library/system.windows.media.matrix.multiply(v=vs.110).aspx

は基本的には、一例は以下のとおりです。

private void multiplicationExample() 
{ 

    Matrix matrix1 = new Matrix(5, 10, 15, 20, 25, 30); 
    Matrix matrix2 = new Matrix(2, 4, 6, 8, 10, 12); 

    // matrixResult is equal to (70,100,150,220,240,352) 
    Matrix matrixResult = Matrix.Multiply(matrix1, matrix2); 

    // matrixResult2 is also 
    // equal to (70,100,150,220,240,352) 
    Matrix matrixResult2 = matrix1 * matrix2; 


} 
+0

3x3の行列乗算は、このライブラリは、VS 2012でサポート可能ではない –

+0

を頼まれたものと同じものではありません。ここでは例です – ahsan

0

math.netを試してみてください。

var matrixA = DenseMatrix.OfArray(new[,] { { 1.0, 2.0 }, { 4.0, 5.0 } }); 
var matrixB = DenseMatrix.OfArray(new[,] { { 1.0 }, { 2.0 } }); 

var result = matrixA * matrixB; 
Console.WriteLine(result); 

See this .NET Fiddle