亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 Math.Net 從數組創建矩陣

使用 Math.Net 從數組創建矩陣

C#
天涯盡頭無女友 2023-07-09 16:48:35
我有一個由數字子列表組成的列表。這被命名biglist為:biglist[0] = { 1, 2, 3, 4, 5 };biglist[1] = { 5, 3, 3, 2, 1 };biglist[2] = { 3, 4, 4, 5, 2 };現在我想使用這些子列表創建一個matrix,其中每個子列表代表matrix. 我的最終結果必須是matrix5x3,這樣:1 | 5 | 3   ---------2 | 3 | 4   ---------  3 | 3 | 4   ---------  4 | 2 | 5   ---------  5 | 1 | 2  我知道如何將 a 轉換list為array,但我不知道如何組裝這些數組來創建matrix.我認為這個包Math.Net可以滿足我的目的,但我不明白如何用它來做到這一點。
查看完整描述

2 回答

?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

MathNet 限制是您只能使用Double、或數字類型來實現此目的Single。ComplexComplex32


using MathNet.Numerics.LinearAlgebra;


// ...


double[][] biglist = new double[3][];


biglist[0] = new double[] { 1, 2, 3, 4, 5 };

biglist[1] = new double[] { 5, 3, 3, 2, 1 };

biglist[2] = new double[] { 3, 4, 4, 5, 2 };


Matrix<double> matrix = Matrix<double>.Build.DenseOfColumns(biglist);

Console.WriteLine(matrix);

給出:


DenseMatrix 5x3-Double

1  5  3

2  3  4

3  3  4

4  2  5

5  1  2


查看完整回答
反對 回復 2023-07-09
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

如果我很了解你,你正在嘗試做這樣的事情:


    public static int[,] GetMatrix(IReadOnlyList<int[]> bigList)

    {

        if (bigList.Count == 0) throw new ArgumentException("Value cannot be an empty collection.", nameof(bigList));


        var matrix = new int[bigList.Count, bigList[0].Length];


        for (var bigListIndex = 0; bigListIndex < bigList.Count; bigListIndex++)

        {

            int[] list = bigList[bigListIndex];


            for (var numberIndex = 0; numberIndex < list.Length; numberIndex++) matrix[bigListIndex, numberIndex] = list[numberIndex];

        }


        return matrix;

    }


    private static void Main(string[] args)

    {

        var biglist = new List<int[]>

        {

            new[] {1, 2, 3, 4, 5},

            new[] {5, 3, 3, 2, 1},

            new[] {3, 4, 4, 5, 2}

        };


        int[,] matrix = GetMatrix(biglist);


        for (var i = 0; i < matrix.GetLength(1); i++)

        {

            for (var j = 0; j < matrix.GetLength(0); j++)

                Console.Write($" {matrix[j, i]} ");

            Console.WriteLine();

        }



        Console.ReadKey();

    }


查看完整回答
反對 回復 2023-07-09
  • 2 回答
  • 0 關注
  • 261 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號