Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何并行化矩阵转置?

如何并行化矩阵转置?
EN

Stack Overflow用户
提问于 2013-05-31 12:47:55
回答 3查看 3.8K关注 0票数 2

如何并行化矩阵转置?

我知道要转置矩阵,我必须应用一些关于这一点的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for (int i = 0; i < matrix.length - 1; i++) {
    for (int j = i + 1; j < matrix[i].length; j++) {
        tmp = matrix[i][j];
        matrix[i][j] = matrix[j][i];
        matrix[j][i] = tmp;
    }
}

但是如何并行化这个操作,我不知道。

我需要创建N个线程来转置矩阵4Nx4N.

EN

回答 3

Stack Overflow用户

发布于 2013-05-31 12:53:13

因为这听起来像是家庭作业问题,所以我不会直接给你答案,但我会给你指明正确的方向。

假设您正在转置一个4x4矩阵:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A B C D      A E I M
E F G H  ->  B F J N
I J K L      C G K O
M N O P      D H L P

如果我们把它分解成四个子矩阵:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A B | C D      A E | I M
E F | G H      B F | J N
----+----  ->  ----+----
I J | K L      C G | K O
M N | O P      D H | L P

请注意,生成的四个子矩阵都是您开始使用的四个子矩阵的转置(右上和左下角的矩阵被交换)。你怎么能利用这个?)

票数 8
EN

Stack Overflow用户

发布于 2013-05-31 12:54:24

我发现,通常情况下,最好只是带一个"transposed“标志(bool,bit,随便什么),然后使用它来逆转索引计算。这似乎是BLAS,LAPACK等的方式。

由于缓存争用,在这里很难获得很多并行加速比。

票数 1
EN

Stack Overflow用户

发布于 2018-06-21 02:51:15

如果您想要一个简单的并行解决方案来解决您的问题,这样的方法可能会奏效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
double[][] matrix=new double[numberOfRows][numberOfColumns];
double[][] transpose = new double[numberOfColumns][numberOfRows];
IntStream.range(0, numberOfColumns * numberOfRows).parallel().forEach(i ->
{
    int m = i / numberOfRows;
    int n = i % numberOfRows;
    transpose[m][n] = matrix[n][m];
});

这使用了一个并行的IntStream,您可以把它看作是一个并行化的for -循环,它运行于矩阵中的元素数。注意,我分配了两个变量来获得实际的行和列,我需要将其作为换位的目标。

将索引i除以流当前所在的行数,就会得到转置矩阵中目标行的索引。索引i的模数和行数给出了应该分配的转置矩阵的列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16865730

复制
相关文章
python转置矩阵代码_python 矩阵转置[通俗易懂]
5.矩阵转置 给定:L=[[1,2,3],[4,5,6]] 用zip函数和列表推导式实现行列转def transpose(L): T = [list(tpl) for tpl in zip(*L)] return T
全栈程序员站长
2022/08/22
5.6K0
矩阵转置(函数)
叶茂林
2023/07/28
1820
稀疏矩阵转置
矩阵是线性代数中的一个知识,刚开始学习的时候可能感觉不到它有什么用处,最初的感觉就是对二维数据的操作。其实现实生活中矩阵的用处太大了,设计领域相当的广泛。在此只讨论稀疏矩阵的转置问题;
大黄大黄大黄
2018/09/14
1.7K0
稀疏矩阵转置
[每日一题]矩阵转置(1242)
题目描述 输入N*N的矩阵,输出它的转置矩阵。 输入 第一行为整数N。 接着是一个N*N的矩阵。 输出 转置矩阵 样例输入 2 1 2 1 2 样例输出 1 1 2 2 PS:如果你有想法或者想看别人的想法就回复题号1242,获得链接,将你的想法写进去,不懂的朋友也可以通过回复题号1242获得链接查看别人的想法和思路哦! 另外,有兴趣的同学还可以加入C语言网官方微信群,一起讨论C语言 有找密码或者其他问题也可以到里面找相关人员解决 通过加小编:dotcppcom 备注:C语言网昵称(需要先在C语言
编程范 源代码公司
2018/04/18
1.3K0
10:矩阵转置
10:矩阵转置 总时间限制: 1000ms 内存限制: 65536kB描述 输入一个n行m列的矩阵A,输出它的转置AT。 输入第一行包含两个整数n和m,表示矩阵A的行数和列数。1 <= n <= 100,1 <= m <= 100。 接下来n行,每行m个整数,表示矩阵A的元素。相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间。输出m行,每行n个整数,为矩阵A的转置。相邻两个整数之间用单个空格隔开。样例输入 3 3 1 2 3 4 5 6 7 8 9 样例输出 1 4 7 2 5
attack
2018/04/03
1.9K0
矩阵乘以其矩阵转置
1.假设矩阵A是一个 m ∗ n m*n m∗n 矩阵,那么 A ∗ A T A*A^T A∗AT 得到一个 m ∗ m m*m m∗m 矩阵, A T ∗ A A^T*A AT∗A 得到一个 n ∗ n n*n n∗n 的矩阵,这样我们就能得到一个方矩阵。 看一个例子:
全栈程序员站长
2022/09/07
1.2K0
numpy矩阵转置
numpy矩阵转置只需要这样子: import numpy as np import fractions # 设置以分数形式显示 np.set_printoptions(formatter={'all': lambda x: str(fractions.Fraction(x).limit_denominator())}) # 定义矩阵 c = np.array([[-1/np.sqrt(2), 0, 1/np.sqrt(2)], [0, 1, 0], [1/np.sqrt(2), 0, 1/np.sqr
灯珑LoGin
2022/10/31
8220
矩阵转置与矩阵相乘[通俗易懂]
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说矩阵转置与矩阵相乘[通俗易懂],希望能够帮助大家进步!!!
Java架构师必看
2022/06/19
4.6K0
矩阵转置与矩阵相乘[通俗易懂]
python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]
全栈程序员站长
2022/09/03
3.5K0
矩阵转置与矩阵相乘
写这篇博客的原因是为了记录一下矩阵转置与矩阵相乘的实现代码,供日后不时之需。直接原因是今晚(2016.09.13)参加了百度 2017 校招的笔试(C++岗),里面就有一道矩阵转置后相乘的在线编程题。考虑到日后笔试可能会用到,特此记录,也希望能够帮助到需要的网友。
全栈程序员站长
2022/07/04
7450
矩阵转置与矩阵相乘
矩阵转置与矩阵相乘
写这篇博客的原因是为了记录一下矩阵转置与矩阵相乘的实现代码,供日后不时之需。直接原因是今晚(2016.09.13)参加了百度2017校招的笔试(C++岗),里面就有一道矩阵转置后相乘的在线编程题。考虑到日后笔试可能会用到,特此记录,也希望能够帮助到需要的网友。
恋喵大鲤鱼
2018/08/03
3.1K0
矩阵转置与矩阵相乘
python转置矩阵画流程图_python 矩阵转置transpose
我们对arr进行transpose转置,arr2 = arr.transpose((1,0,2)),结果是这样:
全栈程序员站长
2022/08/24
1.6K0
21-矩阵转置
利用数组解决线性代数中的矩阵转置问题。 设有一矩阵为m×n阶即m行n列),第i行j列的元素是a(i,j),需要将该矩阵转置为n×m阶的矩阵,使其中元素满足 b(j,i)=a(i,j)。
lexingsen
2022/02/25
7840
Java实现矩阵转置
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149636.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/05
8680
Java实现矩阵转置
python 矩阵转置 transpose
[Running] python -u “j:\python\matrix.py”
全栈程序员站长
2022/09/05
9880
Python – 实现矩阵转置
有个朋友提出了一个问题:手头上现在有一个二维列表,比如[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]],现在要把该二维列表变成为[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]。
全栈程序员站长
2022/08/22
1.1K0
求转置矩阵问题
输入第一行一个整数n<20,表示有n组测试数据,下面是n组数据; 每组测试数据是九个整型数(每个数都不大于10000),分别为矩阵的的每项;输出每组测试数据的转置矩阵; 请在每组输出之后加一个换行样例输入
书童小二
2018/09/03
1K0
python一维数组转置_python矩阵转置[通俗易懂]
对于有参数的transpose:对于三维数组,原型数组的参数应该是(0,1,2),对应的是外行,子行,子列,如果变成(1,0,2)就是将外行变成子行,子行变成外行。对于元素索引也发生同样改变,比如原来的元素3的索引是(0,1,1),转换后就是(1,0,1)
全栈程序员站长
2022/08/22
2.1K0
python实现矩阵的转置_Python实现矩阵转置的方法分析
前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加。例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再添加[5, 6]扩充为[[1, 3, 5], [2, 4, 6]]等等。
全栈程序员站长
2022/08/23
1.8K0
python实现矩阵的转置_Python实现矩阵转置的方法分析
python转置矩阵函数_对python 矩阵转置transpose的实例讲解
image_vector_len = np.prod(image_size)#总元素大小,3*55*47
全栈程序员站长
2022/08/22
1.5K0

相似问题

转置矩阵:此代码如何转置矩阵

13

如何转置矩阵?

14

如何转置矩阵?

20

转置矩阵

33

矩阵转置

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文