c# - C# Mathnet 数值多项式跨向量/数组求值,我必须循环吗?
问题描述
好的,所以我试图通过将 Matlab 源代码转换为 C# 来摸索我的方式。到目前为止,我已经能够做所有事情而无需实现任何循环。
data = 数据向量 Fourier.Forward(data.AsArray()) 接收数据并用结果覆盖原始向量。Vector.ABS(data) 计算向量中的绝对值 Polynomial.Fit(x.AsArray(), data.Array()) 计算并返回多项式的系数
但现在我需要根据 X 绘制并找到 Y 值。我能找到的唯一函数是
Polynomial.Evaluate,但它接受单个 X 值,并返回 Y。是否有一个函数可以接收我的整个向量或作为数组,它将返回单个向量/结果数组?
解决方案
您可以使用 Linq 的 Select。
如果您在 xCol 中有 X 的集合,并将Polynomial.Evaluate
X 评估为 Y,则可以执行以下操作:
var yCol = xCol.Select(x => Polynomial.Evaluate(x)).
它实际上是一个循环,但它看起来和行为就像一个向量函数
它的工作方式是您指定的lamba
x => Polynomial.Evaluate(x)
应用于 的每个成员xCol
,产生一个输出可枚举集合。
您可以将该 lambda 读取为“给定 x,返回 Polynomial.Evaluate(x)”
推荐阅读
- android - drawableStart 不显示可绘制对象
- json - 对令牌的快速 POST 请求有问题
- visualization - How to install LLNL VisIt on another distribution
- neural-network - Pytorch modifying intermediate values during forward
- ruby-on-rails - Trying to compare results in one array with results in another array
- firebase - Flutter:使用 Firestore 中的数据生成小部件列表
- actions-on-google - detect/prevent keyboard input on Google Action
- java - Get a BigInt value from a resultset (oracle db) in java
- google-colaboratory - Restricted access issues - Google Colaboratory
- arrays - Jolt:如何合并来自不同数组的一个数组元素