c语言卷积编程,卷积原创C语言卷积代码

//说明运行环境Visual C++6.0

#inc lude"stdio.h"int table_a[6]={1,2,3,4,5,6};//原数组A-给定int table_b[6]={6,2,3,6,4,2};//原数组B-给定void My_Convo lut ion(int *Tab_A,int *Tab_B)

{int temp=0;int i=0;int j=0;int k=0;int Length_A,Length_B;//数组A和数组B的长度int ALL_L ength;//卷积后的总长度uns igned int Temp_A[10000]={0};//此空间要足够大要满足卷积后的总长度uns igned int Conv_out[10000]={0};//用于存放输出结果的数组

Length_A=sizeof(table_a)/sizeof(unsigned int);//求数组A的长度

Length_B=sizeof(table_b)/sizeof(unsigned int);//求数组B的长度printf("The length of table A is%d\n",Length_A);//打印A的长度printf("The length of table B is%d\n",Length_B);//打印B的长度

ALL_Length=Length_A+Length_B-1;//卷积后的总长度printf("The length of the convolution result is%d\n",ALL_Length);//打印卷积结果长度for(i=0; i

{

Temp_A[i]+=Tab_A[i];

}printf("The convolution result is \n:");//输出提示 “卷积结果如下 ”

卷积桃核心算法部分//for(i=0; i

{for(k=i,j=0;k>=0;k--,j++)

{temp+=Temp_A[k]*Tab_B[j];

}

Conv_out[i]=temp;temp=0;pr intf("%d\n",Conv_out[i]);

}

}void main()

{

My_Convo lution(table_a,table_b);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是 C 语言实现卷积操作的代码和详细注释: ```c #include <stdio.h> #define ROWS 3 // 卷积核的行数 #define COLS 3 // 卷积核的列数 // 定义卷积核 int kernel[ROWS][COLS] = { {1, , -1}, {1, , -1}, {1, , -1} }; // 定义输入矩阵 int input[5][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}, {16, 17, 18, 19, 20}, {21, 22, 23, 24, 25} }; // 定义输出矩阵 int output[3][3]; int main() { // 遍历输出矩阵的每一个元素 for (int i = ; i < 3; i++) { for (int j = ; j < 3; j++) { // 计算卷积结果 int sum = ; for (int k = ; k < ROWS; k++) { for (int l = ; l < COLS; l++) { sum += input[i + k][j + l] * kernel[k][l]; } } output[i][j] = sum; } } // 输出结果 for (int i = ; i < 3; i++) { for (int j = ; j < 3; j++) { printf("%d ", output[i][j]); } printf("\n"); } return ; } ``` 注释: 1. `#include <stdio.h>`:引入标准输入输出库。 2. `#define ROWS 3` 和 `#define COLS 3`:定义卷积核的行数和列数。 3. `int kernel[ROWS][COLS]`:定义卷积核。 4. `int input[5][5]`:定义输入矩阵。 5. `int output[3][3]`:定义输出矩阵。 6. `for (int i = ; i < 3; i++)` 和 `for (int j = ; j < 3; j++)`:遍历输出矩阵的每一个元素。 7. `for (int k = ; k < ROWS; k++)` 和 `for (int l = ; l < COLS; l++)`:遍历卷积核的每一个元素。 8. `sum += input[i + k][j + l] * kernel[k][l]`:计算卷积结果。 9. `output[i][j] = sum`:将卷积结果存入输出矩阵。 10. `printf("%d ", output[i][j])`:输出结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值