矩阵的转置

矩阵转置:即矩阵的行列元素互换。

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <math.h>
 5 //float x1,x2,disc,p,q;
 6 #define N 3
 7
 8 int main()
 9 {
10     int matrix(int[][N]);
11     int i,j;
12     int a[N][N];
13     printf("input a %d*%d matrix:\n",N,N);
14     for(i=0;i<N;i++){
15         for(j=0;j<N;j++)
16             scanf("%d",&a[i][j]);
17     }
18     printf("oraginal:\n");
19     for(i=0;i<N;i++){
20         for(j=0;j<N;j++)
21             printf("%3d",a[i][j]);
22         printf("\n");
23     }
24     matrix(a);
25     printf("convert:\n");
26     for(i=0;i<N;i++){
27         for(j=0;j<N;j++)
28             printf("%3d",a[i][j]);
29         printf("\n");
30     }
31 system("pause");
32 return 0;
33 }
34 int matrix(int a[][N]){
35     int temp;
36     int i,j;
37     for(i=0;i<N;i++){
38         for(j=i+1;j<N;j++){
39             if(i==j)
40                 a[i][j]=a[j][i];
41             else{
42                 temp=a[i][j];
43                 a[i][j]=a[j][i];
44                 a[j][i]=temp;
45             }
46         }
47     }
48 }
时间: 2024-10-25 10:09:43

矩阵的转置的相关文章

c++矩阵的转置和快速转置

矩阵的转置 将原矩阵的行.列对换,也就是将[i][j]和[j][i]位置上的数据对换. 程序代码: #include<vector>   //稀疏矩阵push pop operator[] 和顺序表一致   template<class T> struct Triple  //定义一个三元组 可以直接访问的定义成struct { size_t _row; size_t _col; T _value;   Triple(size_t row, size_t col, const T&

矩阵及其运算(三):矩阵的转置

矩阵的转置 数学定义:把矩阵A的行换成同序数的列得到的一个新矩阵,叫做A的转置矩阵. Public Function Trans(Optional ByVal tMatrix As Matrix = Nothing) If tMatrix Is Nothing Then tMatrix = Me '参数为空,默认为自身转置 End If Dim tempMatrix As New Matrix(tMatrix.Col, tMatrix.Row) For i = 1 To tMatrix.Col

c++数组-矩阵的转置

//矩阵的转置 //将一个二维数组行和列元素互换,存到另一个二维数组中. // 例如 // a=1 2 3 // 4 5 6 // b=1 4 // 2 5 // 3 6 // 程序如下: #include <iostream> using namespace std; int main( ) { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; cout<<"array a:"<<endl; for (

任意定义一个二维数组,实现矩阵的转置——java

import java.util.Scanner; /* * 任意定义一个二维数组,编写程序实现矩阵的转置. * */ public class MatrixTransposition { public static void main(String[] args) { //create the rowNumber and columnNumber of the matrix Scanner input = new Scanner(System.in); System.out.println("

数据结构之---C语言实现矩阵的转置

//矩阵的转置 //我在上一篇博客中写道三元矩阵操作 //其中的转置为了加深理解,这里重新用通俗 //易懂的代码重新进行了编写,如理如下: #include <stdio.h> #include <stdlib.h> int main() { int i, j, b[3][3]; int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; printf("矩阵原型:\n"); for(i = 0; i < 3; i++

【数据结构】稀疏结构及稀疏矩阵的压缩存储,矩阵的转置

在矩阵中,有一类很重要的矩阵,就是-----稀疏矩阵. 所谓的稀疏矩阵呢,就是指的是,在矩阵中,有效的数据个数远远小于无效的数据个数(并且这些数据排列顺序没有规律).我们下面先举个稀疏矩阵的例子: 有效数据个数仅仅6个,其余都为无效数据0. 那我们将稀疏矩阵存在压缩矩阵中,设定一个三元组,使用{row,col,value}存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后顺序依次存放. 我们建立一个结构体: struct Triple//定义一个三元组,用来存储稀疏矩阵的x,y,坐标值

C代码和python代码:用二维数组实现矩阵的转置

目录 一.总结 二.C代码 三.Python代码 一.总结 输入用了 int(input()) ,但发现这种方法好像有点不方便 每次输入一个数字都要按回车,按空格不能识别 下次找找看看有没有其他输入方法 Python中没有数组,但列表类似数组 通过叠加[ ],就可以通过列表创建二维数组 Python中创建二维数组的方法(以本案例为例): matrixA=[[0 for i in range(4)] for i in range(3)] matrixA=[ [ 0, 0, 0, 0], [ 0,

数据结构(复习)--------压缩矩阵的转置和相乘

// // 关于数据结构的总结与复习 Coding //关于压缩矩阵转置和连乘 #include <cstdio> #include <cstdlib> #include <cstring> #define maxsize 100 #define error 0 #define ok 1 //#define _OJ_ typedef struct triple { int e; int i; int j; } triple; //存储行列和值 typedef struc

对矩阵进行转置运算

package lianxi; public class juzhen { public static void main(String[] args) { // TODO 自动生成的方法存根 int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}}; //创建二维数组 System.out.println("转置前的的矩阵是:"); printArray(arr); //输出二维数组 int arr2[][]=new int[arr.lengt