【问题标题】:Concatenating Matrices in C#C#中的连接矩阵
【发布时间】:2013-10-22 11:34:44
【问题描述】:

我有一个 2 x 11 的矩阵,我需要将它连接到一个 m x 11 矩阵。目前我有一个触发此操作的事件。我对 C# 很陌生,还没有做过一些矩阵操作,所以答案可能很简单。

private double[,] A;

private void Window_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        //variables xk,yk,zk ... assigned here
        double[,] a = { { xk, yk, zk, 1, 0, 0, 0, 0, xkxp, ykxp, zkxp }, { 0, 0, 0, 0, xk, yk, zk, 1, xkyp, ykyp, zkyp} };
        if (A == null)
        {
           //On the first event A will be null
            A = a;
        }
        else
        {
            //Concatenate A and a here
            a.CopyTo(A, A.Length);
        }
    }

如果我将变量“a”分成两个单独的行会更容易吗?我需要使用什么索引?

对于我应用到它的操作,A 矩阵需要保留或变为 double[,]。在程序结束时矩阵“完成”之前,不需要进行操作。我想过只创建一个数组,然后在最后重新整形,但我不知道该怎么做。

【问题讨论】:

  • 如果您正在执行一些严肃的代数工作,请不要重新发明轮子,例如使用this

标签: c# matrix concatenation


【解决方案1】:

我认为在这种情况下您需要手动执行此操作。但是,由于您在矩阵末尾添加空行,这应该不难。 如果您将矩阵声明为(示例)

double[][] a = new[] { new double[7], new double[7]  };

您甚至可以单独处理行。

我建议您编写(或使用)特定的矩阵类,而不是使用普通的双精度数组。然后,您可以向该类添加所需的功能。

【讨论】:

  • @PMF 谢谢。我需要采用这个矩阵并解决 Ax=b ,因为 Cesar 显示 here 这就是我目前使用双数组的原因。我会看看你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 2015-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多