C++实现卷积运算

清理磁盘,看到了几年前的代码

#include<iostream>
using namespace std;
void main()
{
	//输入卷积矩阵

	int row1 = 3, col1 = 3;
	int a[3][3];
	//cout<<"输入卷积矩阵的行数:";
	//cin>>row1;
	//cout<<"输入卷积矩阵的列数:";
	//cin>>col1;
	cout << "输入卷积矩阵:" << endl;

	for (int i = 0; i < row1; i++)
		for (int j = 0; j < col1; j++)
		{
			cin >> a[i][j];
		}
	//输入卷积核
	int row2 = 2, col2 = 2;
	int b[2][2];
	/*cout<<"输入卷积核矩阵的行数:";
	cin>>row2;
	cout<<"输入卷积核矩阵的列数:";
	cin>>col2;  */
	cout << "输入卷积核矩阵:" << endl;

	for (int i = 0; i < row2; i++)
		for (int j = 0; j < col2; j++)
		{
			cin >> b[i][j];
		}
	//进行卷积
	int c[3][3] = { 0,0,0,0,0,0,0,0,0 };
	for (int i = 0; i < row1; i++)
		for (int j = 0; j < col1; j++)
		{
			int p = i, q = j;
			for (int k = 0; k < row2 && p < row1; k++, p++)
				for (int m = 0; m < col2 && q < col1; m++, q++)
					c[i][j] = c[i][j] + a[p][q] * b[k][m];//定义b[0][0]为卷积中心
		}
	for (int i = 0; i < row1; i++)
	{
		for (int j = 0; j < col1; j++)
		{
			cout << c[i][j] << " ";
		}
		cout << endl;
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值