c# - 如何从矩阵中获取一维数组

标签 c# arrays matrix

我有一个矩阵。我需要从矩阵中获取一维数组。例如,我有以下矩阵:
123
456
789
所以它看起来像 3 个数组:147、258、369。 但是我在这段代码中得到了“索引超出范围异常”:

  int[] b = new int[n];
        for (i = 0; i < n; i++)
        {
            b[i] = a[i, n];
            Console.Write(b[i] + " ");
        }
        Console.WriteLine();

感谢您的帮助。

这是已经可以运行的完整代码:

static void Main(string[] args)
    {        
        int n = 0, m = 0, i = 0, j = 0;           

        Random r = new Random();

        Console.WriteLine("Please, input matrix size:");
        Console.Write("\tn = ");

        n = Convert.ToInt32(Console.ReadLine());
        Console.Write("\tm = ");

        m = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine();

        int[,] a = new int[n, m];           

        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
            {                  
                a[i, j] = r.Next(0, 2);                   
            }                
        }

        showMe(a, n, m);

        Console.WriteLine();
        run(a, n, m);

        Console.ReadKey();

        int[][] b = new int[m][];
        for (i = 0; i < m; i++) 
        { 
            b[i] = new int[n]; 
            for (j = 0; j < n; j++) 
            {
                b[i][j] = a[j, i];
                Console.Write(b[i][j] + " ");
            }
            Console.WriteLine();
        }
        Console.WriteLine();
        Console.ReadKey();
    }

最佳答案

我假设 n=3 并且它是一个方阵,a[i, n]; 将超出 a 的范围 - 您可以引用的最大索引是 n-1 .

我觉得你想要的是

    int[][] b = new int[m][];
    for (i = 0; i < m; i++)
    {
        b[i] = new int[n];
        for (j = 0; j < n; j++)
        {
            b[i][j] = a[j,i];
        }

    }

b[0] 是你的第一个数组,b[1] 是你的第二个....

关于c# - 如何从矩阵中获取一维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010283/

相关文章:

c# - UWP MediaCapture 拒绝访问相机

java - 如何对数组中不断更新的(动态)对象进行排序

Python和矩阵,移动列&行

python - 使用正规方程的线性回归

Java for循环制作 Asterisk 矩阵

c# - TextBox.Clear() 或 TextBox.Text = string.Empty

c# - MembershipUser 和 Entity Framework 代码优先

c# - 禁止 IP 地址不断访问我的 C#/Azure 网站?

javascript - 打印数组中缺失的连续数字作为范围

javascript - 使用填充方法创建二维数组