矩阵转置实验的报告.docx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
矩阵转置实验的报告

矩阵转置实验报告 篇一:实验报告 矩阵快速转置   实验报告   实验项目名称:实现矩阵的快速 转置的操作 所属课题名称:数据结构   实 验 类 型:验证实验   实 验 日 期:XX/12/20   学院:数学与信息科学学院   专业: 信息与计算科学   班级: 082班   姓名:李晓璐   学号:   实验 稀疏矩阵的快速转置操作   一、实验目的   1、 了解稀疏矩阵的三元组存储形式。   2、 熟悉掌握三元表存储矩阵的转置算法。   二、实验环境   硬件:PC 微型计算机、256M以上内存,40G以上硬盘。   软件:Windows XP,Turbo C/C++   三、实验内容   转置运算是一种最简单的矩阵运算。对于一个m*n的矩阵M,它的转置矩阵T是一个n*m的矩阵。假设a和b是TSMatrix型的变量,分别表示矩阵M和T。按照a.data中三元组的次序进行转置,并将转置后的三元组置入b中恰当的位置。实现由a得到b的方式如下。   在转置前,应先求得M的每一列中非零元的个数,进而求得每一列的第一个非零元在b.data中应有的位置。在此,设num和cpot两个向量,num[col]表示矩阵M中第col列中非零元的个数,cpot[col]指示M中第col列的第一个非零元在b.data中应有的位置。显然有:   cpot[1]=1;   cpot[col]=cpot[col-1]+num[col-1]   四、实验步骤   1、本实验的程序清单如下。   “TSMatrix.h”   #define MAXSIZE 12500   #define OK 1   #define ERROR 0   #define TRUE 1   #define FALSE 0   #define OVERFLOW 0   typedef int Status;   typedef int ElemType;   struct Triple   {   int i,j;   ElemType e;   };   class TSMatrix   {   public:   TSMatrix(){mu=0;nu=0;tu=0;};   TSMatrix(int,int,int);   ~TSMatrix(){};   void setTSMatrix();   Status PrintSMatrix();   Status TransposeSMatrix(TSMatrix T);   Status FastTransposeSMatrix(TSMatrix T);   private:   Triple data[MAXSIZE+1]; int mu,nu,tu;   };   TSMatrix::TSMatrix(int a,int b,int c)   {   mu=a;nu=b;tu=c;   for(int p=1;p  {   printf(依次输入稀疏矩阵第%d个非零元的行号,列号,元素:,p);scanf(%d,%d,%d,data[p].i,data[p].j,data[p].e);   }   }   void TSMatrix::setTSMatrix()   {   cout  cinmu;   cout  cinnu;   cout  cintu;   for(int p=1;p  {   printf(依次输入稀疏矩阵第%d个非零元的行号,列号,元素:,p);scanf(%d,%d,%d,data[p].i,data[p].j,data[p].e);   }   }   Status TSMatrix::PrintSMatrix()   {   int k=1,t=0;   for(int p=1;p  {   for(int q=1;q  {   if(p==data[k].iq==data[k].jk  {   cout.width(3);   cout.setf(ios::left);   cout  cout.unsetf(ios::left);   k++;   }   else   {   cout.width(3);   cout.setf(ios::left);   cout  cout.unsetf(ios::left);   }   }   cout  }   return OK;   }   Status TSMatrix::TransposeSMatrix(TSMatrix T)   {   int col,p,q;   T.mu=nu;   T.nu=mu;   T.tu=tu;   if(T.tu)   {   q=1;   for(col=1

文档评论(0)

a888118a + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档