17 稀疏矩阵转置

已知一稀疏矩阵的三组元表为:(1,2,3),(1,6,1),(3,1,5)(3,2,-1),(5,4,5)(5,1,-3),则其转置矩阵的三元组表中第3个三元组为()

分析:

原始的

1,2,3

1,6,1

3,1,5

3,2,-1

5,4,5

5,1,-3

转置之后相当于交换xy之后再存储

2,  1,  3

6,  1,  1,

1,  3,  5

2,  3,-1

4,  5,  5

1,  5,-3

然后按照xy增序排列:

1,  3,  5

1,  5,-3

2,  1,  3

2,  3,-1

4,  5,  5

6,  1,  1,

所以选A-- 2,1,3

参考:https://wenku.baidu.com/view/be829ed084254b35eefd348b.html?qq-pf-to=pcqq.c2c

时间: 2024-10-04 02:08:19

17 稀疏矩阵转置的相关文章

稀疏矩阵转置+快速转置

稀疏矩阵转置 Description 稀疏矩阵的存储不宜用二维数组存储每个元素,那样的话会浪费很多的存储空间.所以可以使用一个一维数组存储其中的非零元素.这个一维数组的元素类型是一个三元组,由非零元素在该稀疏矩阵中的位置(行号和列号对)以及该元组的值构成. 矩阵转置就是将矩阵行和列上的元素对换. 现在就请你对一个稀疏矩阵进行转置.以下是稀疏矩阵转置的算法描述: 图:稀疏矩阵转置的算法描述 Input 输入的第一行是两个整数r和c(r*c <= 12500),分别表示一个包含很多0的稀疏矩阵的行数

稀疏矩阵转置

矩阵是线性代数中的一个知识,刚开始学习的时候可能感觉不到它有什么用处,最初的感觉就是对二维数据的操作.其实现实生活中矩阵的用处太大了,设计领域相当的广泛.在此只讨论稀疏矩阵的转置问题: 可能看到矩阵就会想到二维数组,比如这样一个矩阵: 你可能会想到用二维数组来存放此矩阵中的元素,就像这样:int text[][5] = {{0,5,6,0,4},{0,0,0,0,0},{1,0,0,0,0},{1,0,0,0,0},{0,2,0,0,1}}; 这样好像也没有什么不好.我们再来看看这个矩阵,五行五

4.3.2 稀疏矩阵转置(2)快速转置

SparseMatrix.h #pragma once #include<iostream> using namespace std; class Tri { public: int col; int row; int value; }; class SparseMatrix { public: int term; Tri* elements; int Srow; int Scol; SparseMatrix(int t = 2, int r = 10, int c = 10) { term

稀疏矩阵的压缩存储及转置

没有经过处理的稀疏矩阵其实就是一个特殊的二维数组,数组中的大部分元素是0或者其他类型的非法值,只有少数几个非零元素. 为了实现压缩存储,可以只存储稀疏矩阵的非0元素.在存储稀疏矩阵中的非0元素时,必须要存储该元素的行列号以及元素值.我们可以封装一个三元组类来存储这些元素. //三元组 template<class T> struct Triple { size_t _row;   //行 size_t _col;   //列 T _value;      //值 Triple<T>

算法----稀疏矩阵之三元组

三元组的表示 (1).目的:对于在实际问题中出现的大型的稀疏矩阵,若用常规分配方法在计算机中储存,将会产生大量的内存浪费,而且在访问和操作的时候也会造成大量时间上的浪费,为了解决这一问题,从而善生了多种解决方案. (2).由于其自身的稀疏特性,通过压缩可以大大节省稀疏矩阵的内存代价.具体操作是:将非零元素所在的行.列以及它的值构成一个三元组(i,j,v),然后再按某种规律存储这些三元组,这种方法可以节约存储空间. 具体如下图: #define SMAX 1000 typedef struct {

稀疏矩阵操作算法

测试: demo.cpp #include "trituple.h" #include <iostream> using namespace std; int main(){ Trituple data1; Trituple data2; cout << "功能演示==========================================" << endl; cout << "功能1:输入已压缩的稀

4.3稀疏矩阵的运算与实现

<span style="font-size:32px;">//iOS学习交流群:230644538</span> #include <stdio.h> #include <string.h> using namespace std; #define OK 1 #define MAX 10//用户自定义三元组的最大长度 //定义三元组表 typedef struct { int i, j;//非零元素的行下标和列下标 int v; //非

数据结构之数组

数组本身就是一种数据结构,他是对线性表的一种扩充数组主要用于对矩阵的压缩和表示 一.特殊矩阵的压缩 二.稀疏矩阵的压缩 1.三元组表示法: #include<stdio.h> #define MAXSIZE 1000 typedef int ElemType; //定义一种结构体记录每个压缩后的非零点在原矩阵中的行下标和列下标,以及数据 typedef struct Node{ int row,col; ElemType data; }Triple; //定义一种结构体:新的压缩矩阵,包含所有

AnimeGAN输出日志

D:\MyFiles\LearnFiles\Code\Python\AnimeGAN\AnimeGAN>python main.py --phase train --dataset Hayao --epoch 1 --init_epoch 1D:\Users\feng_\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow\python\framework\dtypes.py:516: FutureWarning: