gpt4 book ai didi

c# - 列表 到 ALGLIB 的 double[,]

转载 作者:太空宇宙 更新时间:2023-11-04 03:55:17 24 4
gpt4 key购买 nike

我是 C# 的新手,我想用它来编写用于校准 AFM 悬臂梁的软件。因此,我需要将一个非常丑陋的函数拟合到一些非线性数据的第一个峰值。我认为 ALGLIB 包可能会为此目的派上用场,这似乎相对容易应用。在他们用于 X 轴数据的主页示例中:

double[,] x = new double[,]{{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}};

我的 X 值在一个列表中,我想使用它们。如何将它们从列表中取出并放入 double[,] 中?我最后的方法是这样的

List<double> xz = new List<double>();
...
double[,] x = new double[,]{xz.ToArray()};

它似乎必须在一个 double[,] 数组中,因为它对于后面的函数是必需的

alglib.lsfitcreatef(x, y, c, diffstep, out state);

有人可以帮我吗?或者有人可以推荐一种更简单的非线性拟合方法吗?

提前致谢

最佳答案

这是将值从列表复制到数组的简单方法:

List<double> xz = // something
double[,] x = new double[xz.Count, 1];
for (int i = 0; i < xz.Count; i++)
{
x[i, 0] = xz[i];
}

我找不到比手动复制更好的方法了。 ToArray()创建不兼容的类型 (double[]),并且 Array.Copy期望数组具有相同的等级(即维数)。

关于c# - 列表<double> 到 ALGLIB 的 double[,],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com