函数功能
封装常用的矩阵打印功能,针对不同的纬度,输出合适的打印格式。
- 一维矩阵打印结果样例:
- 二维矩阵打印结果样例:
- 三维矩阵打印结果样例
- 四维矩阵打印结果样例
参数说明_myPrintList_1D_float(一维矩阵打印)
- inArr:数组名
- len:数组长度
- decimal:保留小数点后位数
代码
void myPrintList_1D_float(float* inArr, int len, int decimal) {
int i = 0;
if (inArr == NULL) {
return;
}
if (decimal < 0)
decimal = 0;
else if (decimal > 3)
decimal = 3;
else;
for (i = 0; i < len; i++) {
if (i == 0)
printf("[");
if(decimal == 0)
printf("%.0f", inArr[i]);
if (decimal == 1)
printf("%.1f", inArr[i]);
if (decimal == 2)
printf("%.2f", inArr[i]);
if (decimal == 3)
printf("%.3f", inArr[i]);
if (i < len - 1)
printf(",");
else if (i == len - 1)
printf("]\n");
}
}
参数说明_myPrintList_2D_float(二维矩阵打印)
- inArr:数组名
- xLen:数组一维长度
- yLen:数组二维长度
- decimal:保留小数点后位数
代码
void myPrintList_2D_float(float* inArr, int xLen, int yLen, int decimal) {
int i = 0, j = 0;
if (inArr == NULL) {
return;
}
if (decimal < 0)
decimal = 0;
else if (decimal > 3)
decimal = 3;
else;
for (i = 0; i < xLen; i++) {
for (j = 0; j < yLen; j++) {
if (j == 0)
printf("[");
if (decimal == 0)
printf("%.0f", inArr[getIndexOfArr_2d(xLen,yLen,i,j)]);
if (decimal == 1)
printf("%.1f", inArr[getIndexOfArr_2d(xLen, yLen, i, j)]);
if (decimal == 2)
printf("%.2f", inArr[getIndexOfArr_2d(xLen, yLen, i, j)]);
if (decimal == 3)
printf("%.3f", inArr[getIndexOfArr_2d(xLen, yLen, i, j)]);
if (j < yLen - 1)
printf(",");
else if (j == yLen - 1)
printf("]\n");
}
}
}
参数说明_myPrintList_3D_float(三维矩阵打印)
- inArr:数组名
- xLen:数组一维长度
- yLen:数组二维长度
- zLen:数组三维长度
- decimal:保留小数点后位数
代码
void myPrintList_3D_float(float* inArr, int xLen, int yLen, int zLen, int decimal) {
int i = 0, j = 0, k = 0;
if (inArr == NULL) {
return;
}
if (decimal < 0)
decimal = 0;
else if (decimal > 3)
decimal = 3;
else;
for (i = 0; i < xLen; i++) {
for (j = 0; j < yLen; j++) {
if (j == 0)
printf("[\n");
for (k = 0; k < zLen; k++) {
if (k == 0)
printf(" [");
if (decimal == 0)
printf("%.0f", inArr[getIndexOfArr_3d(xLen, yLen, zLen, i, j, k)]);
if (decimal == 1)
printf("%.1f", inArr[getIndexOfArr_3d(xLen, yLen, zLen, i, j, k)]);
if (decimal == 2)
printf("%.2f", inArr[getIndexOfArr_3d(xLen, yLen, zLen, i, j, k)]);
if (decimal == 3)
printf("%.3f", inArr[getIndexOfArr_3d(xLen, yLen, zLen, i, j, k)]);
if (k < zLen - 1)
printf(",");
else if (k == zLen - 1)
printf("]\n");
}
if (j == yLen - 1)
printf("]\n");
}
}
}
参数说明_myPrintList_4D_float(四维矩阵打印)
- inArr:数组名
- idx:数组一维长度
- idx1:数组二维长度
- idx2:数组三维长度
- idx3:数组四维长度
- decimal:保留小数点后位数
代码
void myPrintList_4D_float(float* inArr, int idx, int idx1, int idx2, int idx3, int decimal) {
int i = 0, j = 0, k = 0, l = 0;
if (inArr == NULL) {
return;
}
if (decimal < 0)
decimal = 0;
else if (decimal > 3)
decimal = 3;
else;
for (i = 0; i < idx; i++) {
for (j = 0; j < idx1; j++) {
if (j == 0)
printf(" [\n");
for (k = 0; k < idx2; k++) {
if (k == 0)
printf(" [\n");
for (l = 0; l < idx3; l++) {
if (l == 0)
printf(" [");
if (decimal == 0)
printf("%.0f", inArr[getIndexOfArr_4d(idx, idx1, idx2, idx3, i, j, k, l)]);
if (decimal == 1)
printf("%.1f", inArr[getIndexOfArr_4d(idx, idx1, idx2, idx3, i, j, k, l)]);
if (decimal == 2)
printf("%.2f", inArr[getIndexOfArr_4d(idx, idx1, idx2, idx3, i, j, k, l)]);
if (decimal == 3)
printf("%.3f", inArr[getIndexOfArr_4d(idx, idx1, idx2, idx3, i, j, k, l)]);
if (l < idx3 - 1)
printf(",");
else if (l == idx3 - 1)
printf("]\n");
}
if (k == idx2-1)
printf(" ]\n");
}
if (j == idx1 - 1)
printf(" ]\n");
}
}
}