.Net Matrix

Существует ли стандартный матричный класс .Net? Я не могу найти его, если есть.

Если нет, почему бы и нет? Похоже, что людям нужно очень часто. Есть ли нестандартные библиотеки, которые вы могли бы порекомендовать?

Ответ 2

Я не верю, что есть, частично потому, что любой массив можно технически назвать "матрицей", если он представляет собой единый размерный массив длины n, это матрица n x 1. Существует также вопрос о том, хотите ли вы, чтобы матрица сохраняла целые числа, двойные числа или другие числовые значения, которые могут играть роль в некоторых функциях Matrix.

Существуют различные места, такие как здесь и здесь, который может связывать некоторые классы Матрицы с другими функциями линейной алгебры.

Ответ 3

Вы можете найти класс Matrix в библиотеке Lydos.MatLab (документация), которая распространяется как проект с открытым исходным кодом в zlib/libpng license.

Пример использования в С#:

using Lydos.Matlab;
using System;

public class Example
{
    static void Main()
    {
        Engine e = new Engine();
        Matrix m = new Matrix(2, 2), n;

        m[0, 0] = 0;
        m[0, 1] = 1;
        m[1, 0] = 2;
        m[1, 1] = 3;

        e.SetMatrix("m", m);
        e.Evaluate("m = m + 1");
        n = e.GetMatrix("m");

        Console.WriteLine(m); // [0 1; 2 3]
        Console.WriteLine(n); // [1 2; 3 4]

        m.Dispose();
        n.Dispose();
        e.Close();
    }
}