c - C中的卷积矩阵
问题描述
我试图制作一种算法来将矩阵与内核进行卷积,我正在尝试用 C 语言制作它,但我不明白如何制作它,我的代码如下:
#include <stdio.h>
#include <stdlib.h>
#define ROW 10
#define COL 10
#define DIV 10
int main(){
int matrix1[ROW][COL], matrix2[3][3], kernel[3][3], answerx, answery, x, y;
printf("What is the X coordinates?\n");
scanf("%i", &answerx);
printf("What is the Y coordinates?\n");
scanf("%i", &answery);
// Generate Kernel
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
kernel[r][c]=rand()%DIV;
}
}
// Generate User Matrix
for(int r=0;r<ROW;r++){
for(int c=0;c<COL;c++){
matrix1[r][c]=rand()%DIV;
}
}
x=answerx-1;
y=answery-1;
// Generate Matrix with Kernel
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
matrix2[r][c]=matrix1[x][y]*kernel[r][c];
}
}
}
// Print Kernel
printf("\tKernel(Filter)\n");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("\t %i", kernel[r][c]);
}
printf("\n");
}
// Print User Matrix
printf("\t User Matrix \n");
for(int r=0;r<ROW;r++){
for(int c=0;c<COL;c++){
printf("\t %i", matrix1[r][c]);
}
printf("\n");
}
// Print Kernel-Matrix
printf("\t Kernel/Matrix \n");
for(int r=0;r<3;r++){
for(int c=0;c<3;c++){
printf("\t %i", matrix2[r][c]);
}
printf("\n");
}
printf("Coordiantes X: %i e Y: %i \n", answerx, answery);
}
我真的是编程新手,这是我毕业的练习,但我不明白,我怎么能用 r 和 c 用 x 和 y 控制内核,我真的需要一个答案
解决方案
推荐阅读
- scala - spark在满足条件的列中获取最小值
- scikit-learn - 为什么sklearn中的cross_val_score会翻转指标的值?
- amazon-web-services - CloudFormation:属性 SsmAssociations 的值必须是 List 类型
- python - 如何将 Pandas 数据框值与列表进行比较,并将结果放入新列
- c++ - 如何从 C++ 中的文本文件中删除一行?
- php - 多个文本区域字段 php/html 的一个提交按钮
- reactjs - 在弹出的 create-react-app 中提取和引用多个 CSS 文件
- sql - SQL 按星期几分组日期并获取计数
- sql - ORACLE 中 GROUP BY 的小计
- reactjs - 为什么我无法运行 React Native 项目(转换错误)