[英]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()) 計算並返回多項式的系數
但現在我需要根據 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)”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.