本文实例为大家分享了C语言实现稀疏矩阵的具体代码,供大家参考,具体内容如下
#include "stdio.h" #define maxsize 10 typedef struct { int i,j; //非零元素的行、列 int v; //非零元素的值 }Triple; typedef struct { Triple data[maxsize]; int m,n; //矩阵的行、列 }TSMarix; InitTriple(TSMarix *M) { int i,j,k,v,t; printf("请输入稀疏矩阵非零元素的个数:\n"); scanf("%d",&v); for(k=1;k<=v;k++) { printf("请输入第%d个元素行、列和值:",k); scanf("%d%d%d",&i,&j,&t); //储存非零元素的下标和值: M->data[k].i=i; M->data[k].j=j; M->data[k].v=t; } } void displayMatrix(TSMarix *M) { int i,j,p,q,k=1; for(p=0;p<M->m;p++) { for(q=0;q<M->n;q++) if(M->data[k].i==p&&M->data[k].j==q) //输出非零元素 { printf(" %d ",M->data[k].v); k++; } else printf(" 0 "); printf("\n"); } } void display(TSMarix *M) { int i,j,p,q; printf("请输入矩阵的行、列:\n"); scanf("%d%d",&i,&j); M->m=i;M->n=j; for(p=0;p<M->m;p++) { for(q=0;q<M->n;q++) printf(" 0"); printf("\n"); } } main() { TSMarix M; display(&M); InitTriple(&M); displayMatrix(&M); }
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍C++ 实现稀疏矩阵的压缩存储的实例,包括了C++ 实现稀疏矩阵的压缩存储的实例的使用技巧和注意事项,需要的朋友参考一下 C++ 实现稀疏矩阵的压缩存储的实例 稀疏矩阵:M*N的矩阵,矩阵中有效值的个数远小于无效值的个数,且这些数据的分布没有规律。 稀疏矩阵的压缩存储:压缩存储值存储极少数的有效数据。使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置
稀疏矩阵(Sparse Matrix) 注:压缩存储的矩阵可以分为特殊矩阵和稀疏矩阵。对于那些具有相同元素或零元素在矩阵中分布具有一定规律的矩阵,被称之为特殊矩阵。对于那些零元素数据远远多于非零元素数目,并且非零元素的分布没有规律的矩阵称之为稀疏矩阵。 1. 稀疏矩阵的概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目时,则称该矩阵为稀疏矩阵。与之相反,若非0元素数目占大多数时,则称该矩阵
我正在实现一个稀疏矩阵类,使用映射向量来存储数据(映射表示矩阵的一行,其中键是列的索引,值是该位置的maitrix的值)我已经编写了计算行列式的函数,但我不知道是否有一种方法可以计算这种节省的时间(因为矩阵是稀疏的,大多数值为零)在这里我的实现: 这是类接口 我计算行列式的方式是什么?假设运算符()以这种方式重载 提前感谢您的帮助
2.5.1 介绍 (密集) 矩阵是: 数据对象 存储二维值数组的数据结构 重要特征: 一次分配所有项目的内存 通常是一个连续组块,想一想Numpy数组 快速访问个项目(*) 2.5.1.1 为什么有稀疏矩阵? 内存,增长是n**2 小例子(双精度矩阵): In [2]: import numpy as np import matplotlib.pyplot as plt x = np.li
本文向大家介绍实现稀疏数组的C ++程序,包括了实现稀疏数组的C ++程序的使用技巧和注意事项,需要的朋友参考一下 稀疏矩阵是其中大多数元素为0的矩阵。其示例如下。 下面给出的矩阵包含5个零。由于零的数量大于矩阵元素的一半,因此它是稀疏矩阵。 算法 示例 输出结果
在课堂上,我必须为稀疏矩阵编写自己的线性方程求解器。我可以自由地使用任何类型的数据结构为稀疏矩阵,我必须实现几个解决方案,包括共轭梯度。 谢了!