函数功能
计算矩阵外积
参数说明
- inArr1:输入数组1
- len1:数组1长度
- inArr2:输入数组2
- len2:数组2长度
- outLenX:结果数组第一维长度
- outLenY:结果数组第二维长度
代码
float* myOuter_float(float* inArr1, int len1, float* inArr2, int len2, int* outLenX, int* outLenY) {
//输入和输出为一位数组
//输入高维数组时按一位数组展开处理
float* returnArr = NULL;
int i = 0, j = 0;
int index = 0;
if (inArr1 == NULL || inArr2 == NULL) {
printf("myOuter_float:\ninArr1 == NULL || inArr2 == NULL\n");
return NULL;
}
returnArr = (float*)malloc(sizeof(float)*len1*len2);
if (returnArr == NULL) {
printf("malloc失败\n");
return NULL;
}
if (outLenX == NULL || outLenY == NULL) {
printf("myOuter_float:\noutLenX == NULL || outLenY == NULL\n");
return NULL;
}
*outLenX = len1;
*outLenY = len2;
for (i = 0;i<len1;i++) {
for (j = 0;j<len2;j++) {
returnArr[getIndexOfArr_2d(len1, len2, i, j)] = inArr1[i] * inArr2[j];
}
}
return returnArr;
}