Создание экземпляров Matrix‹double› программно (библиотека Math.Net C#)

Я знаю, что это будет звучать как вопрос для начинающих, но я использую эту библиотеку C #, и даже после прочтения ссылок я не могу понять, как сделать следующий код.

Документация по классу Matrix находится по адресу https://numerics.mathdotnet.com/api/MathNet.Numerics.LinearAlgebra/Matrix%601.htm

Я пытаюсь сделать что-то похожее на это, но я не могу понять это

Matrix<double> matrix = new Matrix<double>();
matrix.Add(new List<double> list1());
matrix.Add(new List<double> list2());

Это то, что я сделал до сих пор, чтобы создать объект Matrix, и то, что я пытаюсь сделать, это создать матрицу для любой суммы вместо того, чтобы делать фиксированную сумму в моем коде.

var matrixArrayBuy = CreateMatrix.DenseOfColumnArrays(listMRInfoBuy.ElementAt(0).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(1).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(2).ListValuesBuy.ToArray(),
                            listMRInfoBuy.ElementAt(3).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(4).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(5).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(6).ListValuesBuy.ToArray(),
                            listMRInfoBuy.ElementAt(7).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(8).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(9).ListValuesBuy.ToArray(), listMRInfoBuy.ElementAt(10).ListValuesBuy.ToArray(),
                            listMRInfoBuy.ElementAt(11).ListValuesBuy.ToArray());

person DarthVegan    schedule 05.11.2017    source источник
comment
Что ты пытаешься сделать? Конечно, это похоже на код, который вы нам показали. Но что именно? С какими проблемами вы сталкиваетесь? Вы спрашиваете, как добавить еще одну матрицу к этой? Если да, то какая проблема у вас с этим?   -  person 15ee8f99-57ff-4f92-890c-b56153    schedule 05.11.2017
comment
@EdPlunkett Я отредактировал свой код, чтобы показать вам, как я это делаю сейчас, и все, что я пытаюсь сделать, это создать матрицу для N входных данных, поэтому я чувствую себя очень глупо, не имея возможности понять что-то настолько простое.   -  person DarthVegan    schedule 05.11.2017


Ответы (1)


Не уверен, что такое ваша переменная listMRInfoBuy, но может попробовать что-то вроде:

    List<double[]> matrixParams = new List<double[]>();

    foreach (var item in listMRInfoBuy.Elements)
    {
        matrixParams.Add(item.ListValuesBuy.ToArray());
    }


    var matrixArrayBuy = CreateMatrix.DenseOfColumnArrays(matrixParams);
person Ehz    schedule 05.11.2017
comment
listMRInfoBuy — это список пользовательского класса, который я создал - person DarthVegan; 05.11.2017
comment
Ну, я чувствую себя полным идиотом, потому что этот код был тем, что я как-то упустил в своих попытках. Большое спасибо! - person DarthVegan; 05.11.2017
comment
Предполагая, что и listMRInfoBuy, и .ListValuesBuy являются перечисляемыми, вы можете упростить это до CreateMatrix.DenseOfColumns(listMRInfoBuy.Select(x => x.ListValuesBuy)) - person Christoph Rüegg; 06.11.2017