Questions tagged «matrix»

在数学中,矩阵(复数矩阵)是数字,符号或表达式的矩形阵列,排列成行和列。矩阵中的各个项目称为其元素或条目。

27
如何在Python中定义二维数组
我想定义一个没有初始化长度的二维数组,如下所示: Matrix = [][] 但这不起作用... 我已经尝试过下面的代码,但是它也是错误的: Matrix = [5][5] 错误: Traceback ... IndexError: list index out of range 我怎么了

12
转置/解压缩功能(zip的反函数)?
我有一个2项元组的列表,我想将它们转换为2个列表,其中第一个包含每个元组中的第一项,第二个包含第二项。 例如: original = [('a', 1), ('b', 2), ('c', 3), ('d', 4)] # and I want to become... result = (['a', 'b', 'c', 'd'], [1, 2, 3, 4]) 有内置的功能吗?
504 python  list  matrix  transpose 

9
如何在不首先将其分配给局部变量的情况下为函数返回的MATLAB数组建立索引?
例如,如果我想从中读取中间值magic(5),可以这样进行: M = magic(5); value = M(3,3); 得到value == 13。我希望能够执行以下操作之一: value = magic(5)(3,3); value = (magic(5))(3,3); 取消中间变量。但是,MATLAB抱怨Unbalanced or unexpected parenthesis or bracket在之前的第一个括号3。 是否可以在不首先将其分配给变量的情况下从数组/矩阵读取值?

5
numpy数组和矩阵有什么区别?我应该使用哪一个?
每种都有哪些优点和缺点? 从我所看到的情况来看,如果需要,任何一个都可以替代另一个,所以我应该同时使用这两个还是应该仅使用其中之一? 程序的样式会影响我的选择吗?我正在使用numpy进行一些机器学习,因此确实有很多矩阵,但也有很多向量(数组)。
345 python  arrays  matrix  numpy 

6
numpy.array形状(R,1)和(R,)之间的区别
进入时numpy,一些操作恢复了形状,(R, 1)但有些恢复了(R,)。由于reshape需要显式运算,因此这将使矩阵乘法更加乏味。例如,给定矩阵M,如果我们想在numpy.dot(M[:,0], numpy.ones((1, R)))哪里做R行数(当然,同样的问题也会逐列出现)。我们会得到matrices are not aligned错误,因为M[:,0]是在外形(R,),但numpy.ones((1, R))在形状(1, R)。 所以我的问题是: 什么形状之间的差异(R, 1)和(R,)。我从字面上知道它是数字列表和列表列表,其中所有列表仅包含一个数字。只是想知道为什么不设计numpy使其偏爱形状(R, 1)而不是(R,)更容易进行矩阵乘法。 以上示例是否有更好的方法?无需像这样显式重塑:numpy.dot(M[:,0].reshape(R, 1), numpy.ones((1, R)))

30
如何旋转二维数组?
受雷蒙德·陈(Raymond Chen)的启发,假设您有一个4x4二维数组,请编写一个将其旋转90度的函数。雷蒙德(Raymond)链接到伪代码的解决方案,但我希望看到一些实际的东西。 [1][2][3][4] [5][6][7][8] [9][0][1][2] [3][4][5][6] 成为: [3][9][5][1] [4][0][6][2] [5][1][7][3] [6][2][8][4] 更新:尼克的答案是最直接的,但是有没有办法比n ^ 2更好呢?如果矩阵是10000x10000,该怎么办?

11
什么是使用最广泛的C ++向量/矩阵数学/线性代数库,以及它们的成本和收益之间的取舍?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 2年前关闭。 改善这个问题 似乎许多项目慢慢地需要进行矩阵数学运算,并陷入了以下陷阱:首先构建一些矢量类,然后缓慢地添加功能,直到被发现构建一个半确定的自定义线性代数库并依赖它。 我想避免这种情况,同时又不依赖于某些切向相关的库(例如OpenCV,OpenSceneGraph)。 那里最常用的矩阵数学/线性代数库是什么,为什么会决定使用另一个?是否出于某些原因建议不要使用?我专门在几何/时间上下文*(2,3,4 Dim)*中使用它,但将来可能会使用更高维度的数据。 我正在寻找以下方面的差异:API,速度,内存使用,宽度/完整性,狭窄性/特异性,可扩展性和/或成熟度/稳定性。 更新资料 我最终使用了我非常满意的Eigen3。

30
炸弹掉落算法
我有一个n x m由非负整数组成的矩阵。例如: 2 3 4 7 1 1 5 2 6 2 4 3 4 2 1 2 1 2 4 1 3 1 3 4 1 2 1 4 3 2 6 9 1 6 4 “投下炸弹”将目标单元及其所有八个邻居的数量减少一,最小为零。 x x x x X x x x x 有什么算法可以确定将所有像元减少到零所需的最小炸弹数量? B选项(由于我不是认真的读者) …

12
为什么MATLAB在矩阵乘法中如此之快?
我正在使用CUDA,C ++,C#,Java建立一些基准,并使用MATLAB进行验证和矩阵生成。当我使用MATLAB执行矩阵乘法时,2048x2048甚至更大的矩阵几乎都会立即相乘。 1024x1024 2048x2048 4096x4096 --------- --------- --------- CUDA C (ms) 43.11 391.05 3407.99 C++ (ms) 6137.10 64369.29 551390.93 C# (ms) 10509.00 300684.00 2527250.00 Java (ms) 9149.90 92562.28 838357.94 MATLAB (ms) 75.01 423.10 3133.90 只有CUDA具有竞争力,但是我认为至少C ++会比较接近,并且速度不会慢60倍。我也不知道该如何看待C#结果。该算法与C ++和Java相同,但与相比有很大2048的不同1024。 MATLAB如何快速执行矩阵乘法? C ++代码: float temp = 0; timer.start(); for(int j = 0; j …

23
用JavaScript转置2D数组
我有一个数组数组,就像: [ [1,2,3], [1,2,3], [1,2,3], ] 我想转置它以获得以下数组: [ [1,1,1], [2,2,2], [3,3,3], ] 使用循环以编程方式这样做并不难: function transposeArray(array, arrayLength){ var newArray = []; for(var i = 0; i < array.length; i++){ newArray.push([]); }; for(var i = 0; i < array.length; i++){ for(var j = 0; j < arrayLength; j++){ newArray[j].push(array[i][j]); }; }; return …

30
盘旋成螺旋状
一个朋友需要一种算法,该算法可以让他遍历NxM矩阵的元素(N和M为奇数)。我想出了一个解决方案,但我想看看我的SO同事是否可以想出更好的解决方案。 我将我的解决方案发布为该问题的答案。 示例输出: 对于3x3矩阵,输出应为: (0,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)(-1,-1)(0,-1)(1,-1 ) 此外,该算法应支持非平方矩阵,因此对于5x3矩阵,输出应为: (0,0)(1,0)(1,1)(0,1)(-1,1)(-1,0)(-1,-1)(0,-1)(1,-1 )(2,-1)(2,0)(2,1)(-2,1)(-2,0)(-2,-1)


19
Java矩阵数学库的性能?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我们正在计算某种其运行时受矩阵运算约束的东西。(如果感兴趣,请在下面提供一些详细信息。)这种经历提示了以下问题: 人们对矩阵数学的Java库的性能(例如,乘法,逆运算等)是否有经验?例如: 贾玛 小马 Apache Commons数学 我搜索后什么也没找到。 我们的速度比较细节: 我们正在使用Intel FORTRAN(ifort(IFORT)10.1 20070913)。我们已经使用Apache Commons Math 1.2矩阵操作在Java(1.6)中重新实现了它,并且它同意其所有准确性。(我们有使用Java的理由。)(Java加倍,Fortran real * 8)。Fortran:6分钟,Java 33分钟,同一台计算机。jvisualm性能分析显示在RealMatrixImpl。{getEntry,isValidCoordinate}上花费了很多时间(在未发布的Apache Commons Math 2.0中似乎消失了,但是2.0并没有更快)。Fortran使用Atlas BLAS例程(dpotrf等)。 显然,这可能取决于我们使用每种语言编写的代码,但是我们认为大部分时间都在等效的矩阵运算中。 在其他一些不涉及库的计算中,Java的运行速度并不慢,有时甚至快得多。
151 java  math  matrix  performance 

9
块矩阵到数组
我正在使用numpy。我有一个具有1列和N行的矩阵,并且我想从中获得具有N个元素的数组。 例如,如果我有M = matrix([[1], [2], [3], [4]]),我想得到A = array([1,2,3,4])。 为此,我使用A = np.array(M.T)[0]。有谁知道一种更优雅的方式来获得相同的结果? 谢谢!
149 python  arrays  matrix  numpy 

8
R内存管理/无法分配大小为n Mb的向量
我在尝试在R中使用大对象时遇到了问题。例如: > memory.limit(4000) > a = matrix(NA, 1500000, 60) > a = matrix(NA, 2500000, 60) > a = matrix(NA, 3500000, 60) Error: cannot allocate vector of size 801.1 Mb > a = matrix(NA, 2500000, 60) Error: cannot allocate vector of size 572.2 Mb # Can't go smaller anymore > rm(list=ls(all=TRUE)) …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.