使用 C# 中的高级矩阵库计算 C# 中的特征向量。网
-
25-09-2019 - |
题
好的,我正在使用以下库: http://www.codeproject.com/KB/recipes/AdvancedMatrixLibrary.aspx
我希望计算我拥有的某些矩阵的特征向量。我不知道如何制定代码。
到目前为止我已经尝试过:
Matrix MatrixName = new Matrix(n, n);
Matrix vector = new Matrix(n, 0);
Matrix values = new Matrix(n, 0);
Matrix.Eigen(MatrixName[n, n], values, vector);
然而,它说最佳重载方法匹配有一些无效参数。我知道这个库可以工作,但我只是不知道如何编写我的 C# 代码。
任何帮助都会很棒!
解决方案
查看库,Eigen 方法的签名如下所示:
public static void Eigen(Matrix Mat, out Matrix d,out Matrix v)
有几个错误:
注意
out
d 和 v 参数旁边的关键字。您需要将 out 关键字添加到对 Eigen 的调用中。当您发送元素时,代码需要一个 Matrix 作为第一个参数。因此,
MatrixName[n, n]
需要更改为MatrixName
.您不需要实例化向量和值矩阵,因为 Eigen 方法会为您执行此操作,并且将通过 out 关键字返回您发送的两个参数中的值。还需要注意的一件事是,您将收到如下输出:
值将是一个 [n+1,1] 矩阵
向量将是一个 [n+1,n+1] 矩阵
不像您从初始代码中期望的那样 Matrix(n, 0) 。
代码如下所示:
Matrix MatrixName = new Matrix(n, n);
Matrix vector;
Matrix values;
Matrix.Eigen(MatrixName, out values, out vector);
其他提示
您的代码应该是这样的:
Matrix MatrixName = new Matrix(n, n);
Matrix vector;
Matrix values;
Matrix.Eigen(MatrixName, out values, out vector);
C#out
关键字意味着方法Eigen
会为你创建对象,所以你不应该这样做new Matrix(n, 0);
不隶属于 StackOverflow