Math.Net数字 - 如何运行示例

时间:2014-06-02 13:48:28

标签: c# .net mathdotnet

使用Math.Net进行首次试用并从C ++ \ Cli转移到C#以使用Math.Net,所以今天一切都是新的。

如何设置和运行此Matrix Transpose之类的示例。我应该创建一个类并将此代码复制到其中吗?我注意到接口丢失(错误:找不到命名空间IExample),但我也注意到这里可能会提供Interface。我把它放在哪里?

这就是我的Program.cs(遗漏了基本细节):

namespace Examples.LinearAlgebraExamples
{
  /// Defines the base interface for examples.
   public interface IExample
    {
        string Name
        {
            get;
        }
        string Description
        {
            get;
        }
        void Run();
    }
   /// Matrix transpose and inverse
   public class MatrixTransposeAndInverse : IExample
    {
    // rest of the example code
    }
    class Program
    {
        static void Main(string[] args)
        {
           // how to call the above routines? 
        }
    }
} 

1 个答案:

答案 0 :(得分:1)

这是有用的:创建一个C#控制台应用程序(VS2012),然后将Math.Net示例的主体粘贴到控制台应用程序的主体中。添加包含和命名空间。然后运行上面引用的示例。

代码段(遗漏第2-5项):

using System;
using MathNet.Numerics;
using MathNet.Numerics.LinearAlgebra.Double;
using System.Globalization;

namespace Examples.LinearAlgebraExamples
{
    class Program
    {
        static void Main(string[] args)
        {
            // Format matrix output to console
            var formatProvider = (CultureInfo)CultureInfo.InvariantCulture.Clone();
            formatProvider.TextInfo.ListSeparator = " ";

            // Create random square matrix
            var matrix = new DenseMatrix(5);
            var rnd = new Random(1);
            for (var i = 0; i < matrix.RowCount; i++)
            {
                for (var j = 0; j < matrix.ColumnCount; j++)
                {
                    matrix[i, j] = rnd.NextDouble();
                }
            }

            Console.WriteLine(@"Initial matrix");
            Console.WriteLine(matrix.ToString("#0.00\t", formatProvider));
            Console.WriteLine();

            // 1. Get matrix inverse
            var inverse = matrix.Inverse();
            Console.WriteLine(@"1. Matrix inverse");
            Console.WriteLine(inverse.ToString("#0.00\t", formatProvider));
            Console.WriteLine();

// removed examples here

            Console.WriteLine();
            Console.ReadLine();
        }
    }
}