[英]Java program to mulitiply matrices by calling C code
所以我對這個概念很感興趣。 我在C和Fortran編程方面有豐富的經驗,但幾乎沒有Java經驗。 能夠調用C代碼(甚至C ++)在Java代碼中乘以矩陣是否可行?
我的想法在概念上是這樣的
public class MatrixMultiplication
{
public static void main(String[] args)
{
// Parameters
int MATRIX_SIZE_M = 5000;
int MATRIX_SIZE_N = 5000;
// Allocate matrices for multiplication
double matrixA[][] = new double[MATRIX_SIZE_M][MATRIX_SIZE_N];
double matrixB[][] = new double[MATRIX_SIZE_N][MATRIX_SIZE_M];
double matrixC[][] = new double[MATRIX_SIZE_M][MATRIX_SIZE_N];
// Initialize matrices
...
// Call C code here to multiply C=A*B
...
// Do some other stuff with A, B, and C
...
}
}
如果能夠做到這一點,下一步將是調用MKL進行線性代數計算,這將非常酷。
思考?
調用
C
代碼將矩陣相乘是否可行
你能做到嗎? 是的你可以。 我不太了解您為什么需要這么做。 您可以非常輕松地在Java中將矩陣相乘。
int aLength = A[0].Length; // A Column Length
int bRowLength = B.Length; // B Row Length
int newRowL = A.Length; // m result rows length
int newColL = B[0].Length; // m result columns length
double[][] matrixC = new double[newRowL][newColL];
if(aLength == bRowLength)
{
for( int i = 0; i < newRolL; i++)
for(int j = 0; j < newColL; j++)
for(int k = 0; k < aLength; k++)
matrixC[i][j] += A[i][k] * B[k][j];
}
return matrixC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.