矩阵转置
来源:互联网 发布:淘宝上买的apple app 编辑:程序博客网 时间:2024/05/17 09:11
#include <iostream>using namespace std;const int MAXSIZE=12500;typedef struct{int i,j;int e;}Triple; typedef struct{Triple date[MAXSIZE+1];int mu,nu,tu; }TSMatrix; void List ();void creat(TSMatrix &M);void type(TSMatrix M);void Transpose(TSMatrix M,TSMatrix &T);void quickTranspose (TSMatrix M,TSMatrix &T);void destroy (TSMatrix &M);int main(){int number;TSMatrix M;TSMatrix T;M.tu=0;List();while(1){cout<<"请输入可执行的操作:\n";cin>>number;switch(number){case 1:creat(M);break;case 2:destroy(M);break;case 3:type(M);break;case 4:Transpose(M,T);break;case 5:quickTranspose(M,T);break;case 6:break;default:cout<<"请输入有效的操作!!!\n"<<endl;}if(number==6)break;}return 0;}void List (){ cout<<"******************************"<<endl; cout<<"** 1.创建矩阵 **"<<endl; cout<<"** 2.销毁矩阵 **"<<endl; cout<<"** 3.输出矩阵M **"<<endl; cout<<"** 4.转置矩阵 **"<<endl; cout<<"** 5.快速转置矩阵 **"<<endl; cout<<"** 6.退出 **"<<endl; cout<<"******************************"<<endl;}void creat(TSMatrix &M){cout<<"请输入行数,列数,非零元个数:";cin>>M.mu>>M.nu>>M.tu;for(int i=1;i<=M.tu;i++)cin>>M.date[i].i>>M.date[i].j>>M.date[i].e;cout<<"矩阵创建成功!!\n";}void type(TSMatrix M){if(M.tu){cout<<"矩阵如下:\n";int array[M.mu+1][M.nu+1]={0};for(int i=1;i<=M.tu;i++)array[M.date[i].i][M.date[i].j]=M.date[i].e;for(int i=1;i<=M.mu;i++){for(int j=1;j<=M.nu;j++)cout<<array[i][j]<<" ";cout<<endl;} }else cout<<"请先进行初始化!\n";}void Transpose(TSMatrix M,TSMatrix &T){if(M.tu){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;if(T.tu){int q=1;for(int i=1;i<=M.nu;i++)for(int j=1;j<=M.tu;j++)if(M.date[j].j==i){T.date[q].i=M.date[j].j;T.date[q].j=M.date[j].i;T.date[q].e=M.date[j].e;q++;}cout<<"转置成功!!\n";type(T);}elsecout<<"转置失败!\n";}else cout<<"请先进行初始化!\n";} void quickTranspose (TSMatrix M,TSMatrix &T) { if(M.tu) { T.mu=M.nu;T.nu=M.mu;T.tu=M.tu; int num[1000]; int cpot[1000]; if(T.tu){int col,i,j,k;for(col=1;col<=M.nu;col++)num[col]=0;for(i=1;i<=M.tu;i++)++num[M.date[i].j];cpot[1]=1;for(col=2;col<=M.nu;col++)cpot[col]=cpot[col-1]+num[col-1];for(j=1;j<=M.tu;j++){col=M.date[j].j; k=cpot[col];T.date[k].i=M.date[j].j;T.date[k].j=M.date[j].i;T.date[k].e=M.date[j].e;++cpot[col];}cout<<"转置成功!!\n";type(T);}elsecout<<"转置失败!\n";}else cout<<"请先进行初始化!\n"; } void destroy (TSMatrix &M) { if(M.tu) { M.tu=0; cout<<"销毁成功!\n"; } else cout<<"请先进行初始化!\n"; }
0 0
- 转置矩阵,逆矩阵和倒转置矩阵
- 求矩阵的转置矩阵和两个矩阵相乘
- 2.3 单位矩阵和转置矩阵
- 矩阵转置与矩阵相乘
- C++矩阵操作+,-,*,=,矩阵转置
- MTL 矩阵转置
- 矩阵转置
- 矩阵转置(C)
- 矩阵转置程序
- 稀疏矩阵转置
- 矩阵转置
- 转置矩阵
- CUDA 矩阵转置
- SQl 转置矩阵
- 矩阵转置
- mpi矩阵转置
- 矩阵的转置
- 矩阵转置
- Unity LuaFramework之AppConst参数介绍
- python 解析 xml
- drbd配置和报错
- [转载]三大SCSI Target平台PK:让服务器化身SAN
- 移动端的快速健壮性测试探索
- 矩阵转置
- 60个帮你提升自我的网站
- Codeforces Round #381 (Div. 2) B. Alyona and flowers(贪心 模拟)
- Android将录制的.raw录音文件转为.mp3格式的文件
- $location学习笔记
- Konva.js--矩形案例
- spring-test单元测试(三)-spring mvc请求测试
- markdown画UML图
- 浅析SuperMap iObject .NET开发完成后私有部署,打包安装