c# - 从 math.net 到数组的矩阵
问题描述
我有一个问题问你。我在 C# 中创建了一个矩阵,使用 Math.Net 进行一些数学运算。现在我想将矩阵转换为 List 或将其列拆分为更多数组。我的目标是将这个矩阵传递给一个软件,该软件不从 Math.Net 中读取矩阵,而只从 C# 代码中读取列表、数组等。
谢谢!
编辑:这是我的代码:
Matrix<double>[] matrixC = new Matrix<double>[ins];
for (int i = 0; i < ins; i++)
{
matrixC[i] = Matrix<double>.Build.DenseOfColumns(CjTR[i]);
}
matrixC 是组合一些列表创建的矩阵矩阵。这是我的矩阵C。
矩阵C[0]
矩阵C 1
我想知道是否可以将每一列拆分为数组或列表。不再是 Math.Net 矩阵。
解决方案
标准二维矩阵(或至少是它的数据)只不过是一个普通的二维数组或数组数组。
这两种表示都可以使用 Matrix 类上的标准 Math.Net 方法创建:
var matrix = MathNet.Numerics.LinearAlgebra.Matrix<double>.Build.Random(3, 4);
var matrixAs2DArray = matrix.ToArray();
var matrixAsJaggedArrayPerColumn = matrix.ToColumnArrays();
var matrixAsJaggedArrayPerRow = matrix.ToRowArrays();
如果您需要使用列表/IList 而不是数组,则可以使用System.Array 到 List 的转换来完成
如果你想完全避免 Math.Net 类,那么你只需要手动创建这样的数组。
PS:在某些情况下,用作表示(尤其是稀疏)矩阵的一种方式可能是有意义IDictionary<(int row,int column), TValue>
的,但这是一个略有不同的问题。
推荐阅读
- git - BFG 回购清理器不会缩小特定的回购
- ios - 使用动态原型单元将 CloudKit 记录从 TableViewController A 传递到 TableViewControllerB
- java - x86 P6 上下文中的字节寄存器是什么?
- r - R中城市的热图?
- ruby-on-rails - 100多个点和一条折线,谷歌地图v3
- clojure - 无法使用 spacemacs 插入
- reactjs - How can I use less in create-react-app as variables
- xamarin.forms - 如何使用 xaml 绑定创建 If Else 条件
- c# - 将源中包含项目的对象映射到目标中的项目列表和目标中的 RowVersion
- ios - 如何在iOS应用程序中将小数位限制为四位