九乡新闻网:想知道神马,提问回答学习问题百度都知道
九乡新闻网
九乡新闻网
问题
答案
分类
热门
精品
公告
九乡新闻网,百度知道,问答,回答,神马知道
九乡新闻网
九乡新闻网是一部内容开放、自由的互动网络百科全书
客观、专业、权威的知识性百科全书
谈无欲为什么杀素柔云:矩阵转置
来源:百度文库 编辑:
九乡新闻网
时间:2024/05/01 12:19:36
*************************************************SparseMatrix.h***********************************************#include
using namespace std;const int maxNum=100;template
class Trituple
{
public:
int row;
int col;
T data;
};template
class SparseMatrix
{
friend istream& operator >>(istream& in,SparseMatrix
&m) //重载输入运算符
{
cout<<"请输入行数,列数以及非零元素个数:"; //初始化稀疏矩阵的行、列以及非零元素的个数
in>>m.row>>m.col>>m.terms;
if(m.terms>m.maxTerms)
{
cout<<"错误!非零元素溢出!";
}
else
{
for(int i=0;i
{
cout<<"请输入第"<
in>>m.t[i].row>>m.t[i].col>>m.t[i].data;
while((m.t[i].row>=m.row)||(m.t[i].col>=m.col)) //矩阵元素下标检查
{
cout<<"错误!输入的矩阵元素下标越界!请从新输入:";
in>>m.t[i].row>>m.t[i].col>>m.t[i].data;
}
}
}
return in;
}
friend ostream& operator <<(ostream& out,SparseMatrix
&m) //重载输出运算符
{
int i,j,k=0;
out<<"行:"<
/*for(int i=0;i
{
out<<"M["<
}*/
for(i=0;i
{
for(j=0;j
{
if((m.t[k].row==i)&&(m.t[k].col==j))
{
out<
}
else
{
cout<<'0'<<" ";
}
}
out<
} return out;
}private:
int row;
int col;
int terms;
Trituple
*t; //三元组数组
int maxTerms; //最大元素数目
public:
SparseMatrix(int maxSize=maxNum) //构造函数
{
maxTerms=maxSize;
row=col=terms=0;
t=new Trituple
[maxSize];
}
~SparseMatrix() //析构函数
{
delete []t;
}
/*SparseMatrix
transposedMatrix() //课本上的矩阵转置函数,逻辑正确,但是运行时内存报错
{
int *rowSize=new int[col]; //存放转置矩阵各行中的非零元素个数
int *rowStart=new int[col]; //存放转置矩阵各行中非零元素开始的存放位置
SparseMatrix
tp(maxTerms); //存放转置后的矩阵
tp.row=col;
tp.col=row;
tp.terms=terms;
if(terms>0)
{
int i=0;
int j=0;
for(i=0;i
rowSize=0;
for(i=0;i
rowSize[t[i].col]++;
rowStart[0]=0;
for(i=1;i
rowStart[i]=rowSize[i]+rowStart[i-1];
//*****************************************
for(i=0;i
cout<
cout<
for(i=0;i
cout<
cout<
//******************************************
for(i=0;i
{
j=rowStart[t[i].col]; //j转置矩阵的三元组的行
//rowStart[t[i].col]++;
tp.t[j].row=t[i].col;
tp.t[j].col=t[i].row;
tp.t[j].data=t[i].data;
rowStart[t[i].col]++;
}
}
delete []rowSize;
delete []rowStart;
return tp;
}*/
void transposedMatrix(SparseMatrix &tp) //自己编写的转置矩阵函数
{
int i,j;
if(terms>0)
{
int Row=0;
tp.col=row; //初始化转置矩阵的行、列以及非零元素个数
tp.row=col;
tp.terms=terms;
for(j=0;j
{
for(i=0;i
{
if(t[i].col==j) //检查原三元组的列,如果相同,则交换行、列赋值给转置矩阵
{
tp.t[Row].row=t[i].col;
tp.t[Row].col=t[i].row;
tp.t[Row].data=t[i].data;
Row++;
}
}
}
}
}
/*void displayTrituple() //输出三元组
{
for(int i=0;i
{
cout<
}
cout<
}*/
};*******************************************SparseMatrixMain.cpp*************************************************#include "stdafx.h"
#include
//#include "Trituple.h"
#include "SparseMatrix.h"using namespace std;int _tmain(int argc, _TCHAR* argv[])
{
SparseMatrix
obj;
SparseMatrix
obj1;
cin>>obj;
//obj.displayTrituple(); //测试时使用的输出三元组的函数
cout<<"*********************初始矩阵**********************"<
cout<
obj.transposedMatrix(obj1); //调用自己编写的转置函数
//obj.transposedMatrix(); //调用课本的转置函数
cout<<"*********************转置矩阵**********************"<
cout<
//cout<
return 0;
} 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Reyes11235813/archive/2008/10/23/3132453.aspx
矩阵转置
希尔伯特矩阵
对角矩阵
波士顿矩阵
安索夫矩阵
矩阵图
波士顿矩阵
理解矩阵
波士顿矩阵
理解矩阵
平衡矩阵型组织-
强矩阵组织-
波士顿矩阵法1
矩阵组织结构
理解矩阵[haowen]
剑齐发 矩阵营销
在线电子音乐矩阵
矩阵旋转入门
理解矩阵2
矩阵相乘函数 c++
SWOT分析方法矩阵:
灰度共生矩阵
巧用胆拖式旋转矩阵法
马尔科夫转移矩阵法
最新新闻
沃茨手表网
CSDN程序文档
上海旅游网
神马百科
程序博客
香蕉皮作业帮
景德镇新闻网
余姚信息网
作业帮作业网
互助问答吧
16楼社区
解题作业帮
艺术百科
亮点网
神马百科
神马文学网
拍题作业网
UC知道
我爱散文网
北方网
科学网
第一文库网
微思作业网
我要文章网
都市新闻网
西欧教育
西山新闻网
好楼房产信息网
九乡新闻网
农企信息网
仙女们写真照片
音乐简谱网
米粒芽
学校大全网
95后网站
汝南网
欧普网
宝宝故事网
神马品牌网
杭州交通信息网/">
杭州市高中教育平台
查人人中国名人网
爱美之人
上车买票
安卓系统之家
中科新闻网
科学院研究所
高考快车
高考志愿帮
大学志愿大全
高校问答
高考问答
中考百科
大学知道
久游网