我正在研究一种优化算法,需要将一些数据(由算法生成)存储在一个名为matrix的二维数组中,其中row(i)包含优化矢量(i)的适应度分数和参数值. Dim matrix(vectorCount() - 1, parameterCount()) As Double
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,不存在的东西),结果性能会更好一点(并且仅适用于小数组大小).