问题标签 [mathnet-numerics]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1882 浏览

c# - 使用 Math.Net 计算一些统计数据

我有一些存储在多维数组中的结果:

每列是特定变量(例如“房屋”、“汽车”、“电”)的价格时间序列。我想为每个变量计算一些统计数据,以便以更紧凑的形式总结结果。例如,我正在查看 Math.Net 中的百分位数函数。

我想计算每列价格的第 90 个百分位(所以对于每个变量)。

我正在尝试以下操作,因为该函数不适用于多维数组(因此我无法将 results[,] 作为百分位数函数的参数传递):

所以我想遍历我的 results[,] 的列并计算第 90 个百分位,将结果添加到列表中。但这不起作用,因为 results[, i] 中的语法错误。不幸的是,没有其他(更清晰的)错误消息。

您能帮我了解问题出在哪里,以及是否有更好的方法来按列计算百分位数?

0 投票
1 回答
662 浏览

c# - 斜率标准误差 c#

MathNet.Numerics 中是否有计算回归斜率误差的函数?

上面给出了斜率。如何得到斜率的误差?

谢谢

0 投票
1 回答
184 浏览

c# - 减少没有循环的字典的所有值。或替代存储可能性

我将一些数据存储在 Math.net 向量中,因为我必须将其作为一个整体进行一些计算。该数据在收集时带有时间信息。例如:

因此,当我将数据存储在 Vector 中时,它看起来像这样。

现在有时我需要提取向量的单个条目。但是我没有索引本身,而是一个时间信息。所以我尝试的是一个包含时间信息和 stateVector 中数据索引的字典。

每次我得到新数据时,我都会在字典中添加一个条目(当然还有 stateVector)。所以在时间 2 我做了:

现在只要我不改变我的向量,它就可以工作。不幸的是,当向量太旧时,我必须删除向量中的一个条目。假设时间 2 太旧,我删除第二个条目并得到一个结果向量:

现在我的字典存储了错误的索引值。
我可以想到两种可能的解决方案来解决这个问题。

  1. 遍历字典并将每个值(key > 2)减 1。
  2. 我认为更优雅的是在字典中存储对向量条目的引用而不是索引。

所以像

使用这样的东西,我不会关心删除向量中的一些条目,因为我仍然有对其余向量条目的引用。现在我知道不可能在 C# 中存储引用。

所以我的问题是,除了循环浏览整个字典还有其他选择吗?或者有没有我目前看不到的字典的另一种解决方案?

编辑回答 juharr:时间信息并不总是加一。取决于一些并行运行的过程以及需要多长时间。可能在 1 到 3 之间增加。但也可能更多。向量中有一些值永远不会被删除。我试图用保留在向量中的初始值 5 来展示这一点。

编辑 2:
向量存储至少 5000 到 6000 个元素。目前没有定义最大值,因为它受到我可以实时处理的元素的限制,所以在我的情况下,我有大约 0.01 秒的时间来进行进一步的计算。这就是我搜索有效方法的原因,因此我可以增加向量中的元素数量(或增加我的向量条目的最大“年龄”)。
我需要整个向量来计算大约是我需要添加一个值的数字的 3 倍。
我必须删除频率最低的条目。通过时间键找到单个值将是最常见的情况。也许每秒 30 到 100 次。

我知道这听起来很不确定,但是查找和删除部分的频率取决于另一个过程,这可能会有很大差异。

虽然希望你能帮助我。感谢到目前为止。

编辑3:
@Robinson
我需要整个向量的确切次数也取决于并行过程。每次迭代最小值为两次(因此在 0.01 秒内两次),最大值为每次迭代至少 4 到 6 次。
同样,向量的大小是我想要最大化的。所以假设非常大。

编辑解决方案:
首先感谢所有帮助过我的人。
经过一番试验,我正在使用以下结构。
我正在使用一个列表,我将索引保存在我的状态向量中。此外,我使用字典将我的时间键分配给列表条目。因此,当我删除状态向量中的某些内容时,我只循环遍历列表,这似乎比循环字典要快得多。

所以它是:

0 投票
1 回答
384 浏览

f# - 在 F# 中使用 mathdotnet 进行傅里叶变换

我正在尝试使用 FFT 算法的 Math.NET 数字实现,但我一定做错了,因为输出总是单位

以下是设置:

然后当我运行这个:

我在下面收到一个空输出?

任何想法为什么?

0 投票
1 回答
1745 浏览

vb.net - 使用 Math.net 数值矩阵在 VB2012 中定义矩阵

我正在从 MATLAB 切换到 VS2012。我想使用 Math.net Numeric 来求解基于矩阵的方程。我很难在 VB 环境中使用 Math.Net 矩阵在 VS2012 中定义一个简单的矩阵。我找到了很多关于 F# 以及如何定义矩阵的文章,但在 VB 中没有运气。我试过Public MAT1 As Matrix(Of了,但我不知道如何完成声明。有人知道吗?谢谢你。

0 投票
1 回答
4344 浏览

c# - 我在 MathNet.Numerics 中的傅立叶变换(卷积)有什么问题?- C#

我正在尝试使用MathNet.Numerics'sFFT(快速傅立叶变换)在 2 个音频文件之间进行简单的卷积,但是在 IFFT 之后我得到了一些奇怪的背景声音。

我测试了是卷积还是转换导致了问题,我发现问题已经在 FFT -> IFFT (Inverze FFT) 转换中显示出来。

我的简单 FFT 和 IFFT 代码:

在此之后outSamples,即使我没有在 FFT 和 IFFT 之间做任何事情,它们也会被一些奇怪的背景声音/噪音破坏。

我错过了什么?

0 投票
1 回答
72 浏览

octave - MathNet 和 Octave 计算正态方程之间的差异

好的,这是我使用 c# 和 MathNet 计算 Normal Equation 的代码:

还有我的八度:

谁能帮我理解为什么会这样-

MathNet 结果为: beta = {240, 0.125, 96, -56, -9}

八度结果为: beta ={ 188.40032, 0.38663, -56.13825, -92.96725,-3.73782}

0 投票
2 回答
197 浏览

f# - 如何将 F# (double -> double) 转换为 Func?

MathNet.Numerics.LinearAlgebra用来建立一个图书馆。我需要将用户指定的函数应用于矩阵的每个元素,我知道我可以使用Map

m2我收到以下错误的行中:

但我需要能够传入映射函数,而不是像 for 那样内联定义它m3。的文档MathNet.Numerics似乎没有回答我的问题。

0 投票
1 回答
2279 浏览

c# - 如何在c#中将整数数组转换为矩阵

我有一个名为的整数数组resp,我想将其重写/转换为row matrix带有名称的数组resp

我正在使用Mathnet.Numerics库。

我怎样才能做到这一点?

0 投票
2 回答
1261 浏览

c# - 如何转换矩阵到矩阵?

我想计算如下: Matrix<float> * Matrix<double>

Matrix<float>大约 6M*3 个元素,我怎样才能将其转换为Matrix<double>Matrix<float>以便得到Matrix<float>结果。