| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5139 人关注过本帖
标题:如何将稀疏矩阵的三元组形式转化为矩阵的形式并输出。
只看楼主 加入收藏
heyyroup
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2006-6-14
收藏
 问题点数:0 回复次数:4 
如何将稀疏矩阵的三元组形式转化为矩阵的形式并输出。
如何将稀疏矩阵的三元组形式转化为矩阵的形式并输出。想不出来。哪位帮忙一下。
例如设矩阵为5行5列
矩阵的三元组为 row col value
1 1 2
2 1 3
3 2 5
4 2 3
输出的结果为:
2 0 0 0 0
3 0 0 0 0
0 5 0 0 0
0 3 0 0 0
0 0 0 0 0
搜索更多相关主题的帖子: 三元 矩阵 形式 输出 
2007-10-16 09:19
從霝開匙
Rank: 1
等 级:新手上路
威 望:1
帖 子:79
专家分:0
注 册:2007-8-28
收藏
得分:0 

#include<iostream>
using namespace std;

int main()
{
int ai[4][3]={ {1,1,2},
{2,1,3},
{3,2,5},
{4,2,3}
};


int ib[5][5];
for(int i=0;i<5;i++)/* 第一行的下标是0,给的矩阵是第一行是1来着,我把i改1的i<6,后面就不用ai[i][k]-1咯,可是改了以后了输出的前两行就输出不正确了,什么原因那个大哥讲解下*/
{
for(int j=0;j<5;j++)
{
if(i==(ai[0][0]-1)&&j==(ai[0][1]-1))
ib[i][j]=ai[0][2];

else if (i==ai[1][0]-1&&j==ai[1][1]-1)
ib[i][j]=ai[1][2];

else if (i==ai[2][0]-1&&j==ai[2][1]-1)
ib[i][j]=ai[2][2];

else if(i==ai[3][0]-1&&j==ai[3][1]-1)
ib[i][j]=ai[3][2];
else
ib[i][j]=0;

}
}
for(int m=0;m<5;m++)
{for(int n=0;n<5;n++)
cout<<ib[m][n];
cout<<endl;}
cout<<endl;
return 0;
}
可以输出您要的结果,我是尝试着写的,我也刚学,错误的地方还望指教,我自己还有几个地方不明白在文中注释出来望高手指教!!

[此贴子已经被作者于2007-10-16 11:44:37编辑过]


0→..................
2007-10-16 11:42
heyyroup
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2006-6-14
收藏
得分:0 
谢谢,虽然不是我想要的结果。但是还是谢谢你的帮助。
我在写矩阵的算法的时候,不能够按照矩阵的形式输出(我不知道定义的函数怎么写)。声明如下
const int MaxTerm=10000;
typedef int ElemType;
struct Trtupel //矩阵的三元组声明(矩阵中非零元素的存储方法)
{
int row,col;
ElemType value;
};
class SparseMatrix
{
private:
int Rows,Cols,Terms;//指出稀疏矩阵的行数,列数以及非零元素的个数
Trtupel smArray[MaxTerm];
public:
SparseMatrix(int maxRow,int maxCol,int m); //构造函数 建立一个maxRow行,maxCol列的矩阵
void PrintMatrix(); //按矩阵形式输出矩阵的内容
void PrintTrtupel(); //按三元组格式输出矩阵
SparseMatrix Transpose(); //将矩阵转置(一般方法)
SparseMatrix FastTranspose(); //快速转置
SparseMatrix operator+(SparseMatrix & b);
//当矩阵a与矩阵b的行,列数相同时,将这两个矩阵的对应项相加
SparseMatrix operator*(SparseMatrix & b);
//将矩阵a与矩阵b相乘
//SparseMatrix operator=(SparseMatrix & b);*/
//将矩阵b复制到*this矩阵中
};

在这个类中如何实现void PrintMatrix()
2007-10-16 14:02
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
好办,直接遍历这个三元组.
data[row][col]=value;
不就可以了吗.

倚天照海花无数,流水高山心自知。
2007-10-16 14:28
從霝開匙
Rank: 1
等 级:新手上路
威 望:1
帖 子:79
专家分:0
注 册:2007-8-28
收藏
得分:0 

你用了结构和类编的我还没看到那个地方去!!呵呵,现在还再看链表 你们能不能帮我吧上面的问题解决下,谢谢

[此贴子已经被作者于2007-10-16 14:32:11编辑过]


0→..................
2007-10-16 14:31
快速回复:如何将稀疏矩阵的三元组形式转化为矩阵的形式并输出。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021259 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved