4.7矩阵的转置运算

#include<iostream>
#include<cstdio>
using namespace std;

void InputMatrix(int (*a)[4],int n,int m) {
	for(int i=0;i<n;i++)
		for(int j=0;j<m;j++)
			printf("%d",*(a+i)+j);
}

void OutputMatrix(int (*b)[4],int n,int m) {
	for(int i=0;i<n;i++) {
		for(int j=0;j<m;j++)
			printf("%d",*(*(b+i)+j));
		printf("\n");
	}

}

void MatrixTranspose(int (*a)[4],int *(b)[3]) {
	for(int i=0;i<4;i++) {
		for(int j=0;j<3;j++)
			b[i][j]=a[j][i];
	}

}

int main()
{
	int a[3][4],b[4][3];
	cout<<"input 3X4 matrix"<<endl;
	InputMatrix(a,3,4);
	MatrixTranspose(a,b);
	cout<<"the Transposex Matrix is"<<endl;
	OutputMatrix(b,4,3);
	getchar();
	return 0;
}

编译的结果是这样:  

有点问题,暂时放在这里。

时间: 2024-12-18 22:29:45

4.7矩阵的转置运算的相关文章

对矩阵进行转置运算

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

2016/1/10 作业 1, 二维数组遍历输出求和 2,转置运算???? 3,九宫格?? 后两个存在问题

1 public class arr1 { 2 3 4 public static void main(String[] args) { 5 // 创建二维数组arr[][],输出二维数组所有元素的和. 6 7 int arr[][]={{1,3,5,7,9},{21,23,25,27,29}, 8 {12,14,16,18},{32,34,36,38}}; 9 int sum=0; 10 System.out.println("二维数组遍历"); 11 // for循环 遍历 求和

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

矩阵的转置 数学定义:把矩阵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

数组-简单矩阵的转置

转置运算就是沿着矩阵对角线进行反转 1 #include<stdio.h> 2 3 #define N 3 4 int main(void) 5 { 6 int array[N][N]={ 7 {1,2,3}, 8 {4,5,6}, 9 {7,8,9} 10 }; 11 12 int i,j; 13 for(i=0;i<N;++i) 14 { 15 for(j=0;j<N;++j) 16 { 17 printf("%3d",array[i][j]); 18 }

1.2 eigen中矩阵和向量的运算

1.2 矩阵和向量的运算 1.介绍 eigen给矩阵和向量的算术运算提供重载的c++算术运算符例如+,-,*或这一些点乘dot(),叉乘cross()等等.对于矩阵类(矩阵和向量,之后统称为矩阵类),算术运算只重载线性代数的运算.例如matrix1*matrix2表示矩阵的乘法,同时向量+标量是不允许的!如果你想进行所有的数组算术运算,请看下一节! 2.加减法 因为eigen库无法自动进行类型转换,因此矩阵类的加减法必须是两个同类型同维度的矩阵类相加减. 这些运算有: 双目运算符:+,a+b 双

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&

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 (

稀疏矩阵的转置运算

(1)设m*n 矩阵中有t 个非零元素且t远小于m*n,这样的矩阵称为稀疏矩阵.很多科学管理及工程计算中,常会遇到阶数很高的大型稀疏矩阵.如果按常规分配方法,顺序分配在计算机内,那将是相当浪费内存的.为此提出另外一种存储方法,仅仅存放非零元素.但对于这类矩阵,通常零元素分布没有规律,为了能找到相应的元素,所以仅存储非零元素的值是不够的,还要记下它所在的行和列.于是采取如下方法:将非零元素所在的行.列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节约存储空间.

任意定义一个二维数组,实现矩阵的转置——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("