C# Mathnet 数值多项式求值 vector/array,我必须循环吗?
C# Mathnet Numerics Polynomial Evaluate across an vector/array, do I have to loop?
好的,所以我试图摸索着将 Matlab 源代码转换为 C#。到目前为止,我已经能够在不需要实现任何循环的情况下完成所有事情。
data = 数据向量
Fourier.Forward(data.AsArray()) 接收数据并用结果覆盖原始向量。
Vector.ABS(data) 计算整个向量的绝对值
Polynomial.Fit(x.AsArray(), data.Array()) 计算并returns 多项式
的系数
但现在我需要根据 X 绘制并找到 Y 值。我能找到的唯一函数是
Polynomial.Evaluate,但它接受单个 X 值,return 是 Y。是否有一个函数可以接受我的整个向量或作为数组,它将 return 单个 vector/array 结果?
您可以使用 Linq 的 Select。
如果您在 xCol 中有一个 X 的集合,并且 Polynomial.Evaluate
将 X 计算为 Y,您可以执行以下操作:
var yCol = xCol.Select(x => Polynomial.Evaluate(x)).
它实际上是一个循环,但它看起来和行为都像一个向量函数
它的工作方式是您指定的 lamba
x => Polynomial.Evaluate(x)
应用于xCol
的每个成员,产生一个输出可枚举集合。
您可以将该 lambda 解读为“给定一个 x,return Polynomial.Evaluate(x)”
好的,所以我试图摸索着将 Matlab 源代码转换为 C#。到目前为止,我已经能够在不需要实现任何循环的情况下完成所有事情。
data = 数据向量 Fourier.Forward(data.AsArray()) 接收数据并用结果覆盖原始向量。 Vector.ABS(data) 计算整个向量的绝对值 Polynomial.Fit(x.AsArray(), data.Array()) 计算并returns 多项式
的系数但现在我需要根据 X 绘制并找到 Y 值。我能找到的唯一函数是
Polynomial.Evaluate,但它接受单个 X 值,return 是 Y。是否有一个函数可以接受我的整个向量或作为数组,它将 return 单个 vector/array 结果?
您可以使用 Linq 的 Select。
如果您在 xCol 中有一个 X 的集合,并且 Polynomial.Evaluate
将 X 计算为 Y,您可以执行以下操作:
var yCol = xCol.Select(x => Polynomial.Evaluate(x)).
它实际上是一个循环,但它看起来和行为都像一个向量函数
它的工作方式是您指定的 lamba
x => Polynomial.Evaluate(x)
应用于xCol
的每个成员,产生一个输出可枚举集合。
您可以将该 lambda 解读为“给定一个 x,return Polynomial.Evaluate(x)”