Tag: 子矩阵

如何从更大的矩阵中提取2×2子矩阵

我是一个非常基本的用户,并不太了解C中使用的命令,所以请耐心等待…我不能使用非常复杂的代码。 我对stdio.h和ctype.h库有一些了解,但就此而言。 我在txt文件中有一个矩阵,我想根据输入的行数和列数来加载矩阵 例如,我在文件中有一个5乘5的矩阵。 我想提取一个特定的2乘2子矩阵,我该怎么做? 我创建了一个嵌套循环使用: FILE *sample sample=fopen(“randomfile.txt”,”r”); for(i=0;i<rows;i++){ for(j=0;j<cols;j++){ fscanf(sample,"%f",&matrix[i][j]); } fscanf(sample,"\n",&matrix[i][j]); } fclose(sample); 可悲的是,代码不起作用..如果我有这个矩阵: 5.00 4.00 5.00 6.00 5.00 4.00 3.00 25.00 5.00 3.00 4.00 23.00 5.00 2.00 352.00 6.00 输入3为行,3为列,我得到: 5.00 4.00 5.00 6.00 5.00 4.00 3.00 25.00 5.00 不仅这不是一个2乘2的子矩阵,但即使我想要前3行和前3列,它也不能正确打印…. 我需要从第3行和第3列开始,然后选择2乘2的子矩阵! 我应该最终得到: 4.00 23.00 352.00 6.00 我听说我可以使用fgets和sscanf来实现这一目标。 这是我的试用代码: fgets(garbage,1,fin); sscanf(garbage,”\n”); 但这也不起作用:( […]