c# - c# 10000 x 10000 矩阵乘法
问题描述
我需要对尺寸为 10,000 x 10,000 的两个矩阵执行矩阵乘法。我用的是简单的数组乘法,完成计算需要2个多小时。我需要减少完成乘法的时间。
Double[,] array1 = new double [10000, 10000];
Double[,] array2 = new double [10000, 10000];
Random randNum = new Random();
for (int i = 0; i < array1.GetLength(0); i++)
{
for (int j = 0; j < array1.GetLength(1); j++)
{
array1[i, j] = randNum.Next(1, 10);
}
}
for (int i = 0; i < array2.GetLength(0); i++)
{
for (int j = 0; j < array2.GetLength(1); j++)
{
array2[i, j] = randNum.Next(1, 10);
}
}
Double [,] mt = mMat(array1,array2);
public static double[,] mMat(double[,] A, double[,] B)
{
int aRows = A.GetLength(0);
int aColumns = A.GetLength(1);
int bRows = B.GetLength(0);
int bColumns = B.GetLength(1);
if (aColumns != bRows)
{
throw new ArgumentException("A:Rows: " + aColumns + " did not match B:Columns " + bRows + ".");
}
double[,] C = new double[aRows, bColumns];
for (int i = 0; i < aRows; i++)
{ // aRow
for (int j = 0; j < bColumns; j++)
{ // bColumn
for (int k = 0; k < aColumns; k++)
{ // aColumn
C[i, j] += A[i, k] * B[k, j];
}
}
}
return C;
}
我是编程界的新手,需要执行大型矩阵乘法的任务
解决方案
推荐阅读
- c# - C#:使用 ASP:NET MVC 和 IISExpress 重命名文件
- google-chrome - 修复不起作用:与跨站点资源关联的 cookie 设置为没有“SameSite”属性
- postscript - 需要帮助来理解这个后记代码:代码的执行顺序是什么?
- swift - 来自json响应的Swift iOS动态标签栏
- javascript - 如何为多项操作设置计算器功能?
- model-view-controller - Java Web 的规范 MVC 模型?
- excel - 运行时错误“9”:下标超出范围 - 错误
- python-3.x - Sqlalchemy 从关系中获取数据
- hive - HIVE - 使用同一表记录 B 从记录 A 更新列值
- php - Xampp phpmyadmin 提供无尽的重定向错误