我在C中写一个函数,它取两个向量v1和v3,并执行向量乘以向量的乘积来创建矩阵。v1是1xL1矢量,v3是1xL2矢量。该方法采用v3乘以v1的转置并打印矩阵。这就是我目前所拥有的:
void crossProduct(float *v1, float *v3, int L1, int L2){
int i, j;
float sum;
float c[L2][L1];
for(i = 0; i < L2; i++){
for(j = 0; j < L1; j++){
sum = 0.0;
sum += v3[i] * v1[j];
c[i][j] = sum;
printf("%d", c[i][j]);
}
}
}
我没有得到预期的结果。我也想矩阵打印成矩阵形式,但我不确定如何打印。
您需要对浮点使用%f
格式,而不是%d
格式。
要获得可读数组,请在每个值后面加一个空格,在每行后面加一条换行符。
void crossProduct(float *v1, float *v3, int L1, int L2){
int i, j;
float sum;
float c[L2][L1];
for(i = 0; i < L2; i++){
for(j = 0; j < L1; j++){
sum = 0.0;
sum += v3[i] * v1[j];
c[i][j] = sum;
printf("%f ", c[i][j]);
}
printf("n");
}
}