vb.net – 将1维数组插入到2维数组中

前端之家收集整理的这篇文章主要介绍了vb.net – 将1维数组插入到2维数组中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究一种优化算法,需要将一些数据(由算法生成)存储在一个名为matrix的二维数组中,其中row(i)包含优化矢量(i)的适应度分数和参数值.

Dim matrix(vectorCount() - 1,parameterCount()) As Double
Dim params(parameterCount() - 1) As Double

For i As Integer = 0 To vectorCount() - 1
    matrix(i,0) = vectorscore(i)
    params = vectorValues(i)
    For j As Integer = 0 To params.Length - 1
        matrix(i,j+1) = params(j)
    Next
Next

int vectorCount()返回向量的数量.
int parameterCount()返回每个向量中的参数数量.
double vectorscore(int vectorIndex)返回指定向量的适应度分数.
double [] vectorValues(int vectorIndex)返回指定向量的参数值.

我的问题:
是否有更快(即更有效)的方法将参数插入矩阵?

解决方法

如果你想要效率,依靠“普通”阵列无疑是最好的选择.它们在其他替代方案(集合,列表等)方面如此高效的原因是因为它们包含所需的最少量信息.如果您希望花哨的函数允许轻松/快速地对信息进行排序,或者编写复杂的查询以检索数据,则不应该依赖数组.

我总是依赖于你编写的代码,并且没有速度问题(这非常快).我做了一个快速的研究,以确保没有其他选择,但找不到任何选项.最接近的是Array.Copy,虽然它可以在阵列具有相同尺寸时工作(我个人认为只使用1D阵列).无论如何,我发现了一个关于2D阵列的Array.Copy()与循环性能interesting link(它在C#中,但一切都适用于VB.NET).

总结:您的代码非常快,无需进行改进.如果有一个有效的替代方案(Array.Copy适用于2D和1D,不存在的东西),结果性能会更好一点(并且仅适用于小数组大小).

猜你在找的VB相关文章