You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用MathNet.Numerics的Polynomial.Evaluate处理数组是否需要循环?

Matlab转C#多项式向量化求值解决方案

内置方法调用(匹配你当前使用的API风格)

你当前使用的数值库(从Fourier.Forward、Vector.ABS、Polynomial.Fit的调用格式判断为MathNet.Numerics)已自带批量求值重载,无需自行实现循环:

  • 直接调用Polynomial.Evaluate(double[] xArray, double[] coefficients),传入你需要计算的完整X数组以及Polynomial.Fit返回的系数数组,方法会直接返回对应长度的Y值数组。
  • 如果你使用Vector类型的X变量,可调用Vector<double>.EvaluatePolynomial(double[] coefficients)扩展方法,直接返回Vector类型的Y结果。

自定义扩展方案(若库版本无内置重载)

如果你的当前依赖版本未提供上述重载,仅需写一次通用扩展方法即可保持无手动循环的调用习惯:

// 多项式批量求值扩展方法
public static class PolyEvaluateExtension
{
    // 支持数组输入
    public static double[] EvaluateArray(this Polynomial poly, double[] xInput)
    {
        return xInput.Select(x => poly.Evaluate(x)).ToArray();
    }
    // 支持Vector输入
    public static Vector<double> EvaluateVector(this Polynomial poly, Vector<double> xInput)
    {
        return Vector<double>.Build.Dense(xInput.Count, idx => poly.Evaluate(xInput[idx]));
    }
}

调用方式和你之前的操作逻辑完全一致:

// 数组输入调用
var yArray = poly.EvaluateArray(x.AsArray());
// Vector输入调用
var yVector = poly.EvaluateVector(x);

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:24:00