gpt4 book ai didi

c# - 连接一个二维数组

转载 作者:行者123 更新时间:2023-11-30 15:06:31 25 4
gpt4 key购买 nike

我有两个数组 mat1 和 Mat2。我想要 new_mat=[ma1,mat2];我写了一个有效的函数。我想知道是否有一个非常大的矩阵的有效函数,或者我怎样才能用 Array.CopyTo 方法做到这一点。

public static double[,] Concatenate_matrix_byCol(double[,] Mat1, double[,] Mat2)
{
int col1=Mat1.GetLength(1);
int col2 = Mat2.GetLength(1);
int row1=Mat1.GetLength(0);
int row2 = Mat2.GetLength(0);
int i, j, y;
double[,] newMat = new double[row1, col1 + col2];

for (i = 0; i < row1; i++)
{
for (j = 0; j < col1; j++)
{
newMat[i, j] = Mat1[i, j];
}
}
for (i = 0; i < row1; i++)
{
for (y = 0; y < col2; y++)
{
newMat[i, y+col1] = Mat2[i, y];
}
}
return newMat;
}

最佳答案

您可以将循环组合成:

for (i = 0; i < row1; i++)
{
for (j = 0; j < col1; j++)
newMat[i, j] = Mat1[i, j];

for (y = 0; y < col2; y++)
newMat[i, y+col1] = Mat2[i, y];
}

也许可以改用指针(首先测试性能!),但是库将是最好的解决方案。这样您就不必自己进行微优化。

此线程中提到了很多用于 .Net 的库:Matrix Library for .NET

根据您的性能要求,您还可以研究并行算法,您可能会受到 http://innovatian.com/2010/03/parallel-matrix-multiplication-with-the-task-parallel-library-tpl/ 的启发。 .同样,构建良好的库可能已经具有并行算法。

关于c# - 连接一个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com