问题标签 [matrix-multiplication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2168 浏览

java - 矩形/格子乘法

我正在尝试在 Java 中实现矩形/格子乘法。对于那些不知道的人,这是一个简短的教程。

我尝试了一些方法,其中我使用单个数组来存储两位数的乘法并将 sigma-append 零添加到它。一旦所有数字都相乘,我从数组中选择两个元素,然后添加 sigma 值并再获取两个数字,然后再次执行相同的操作,直到获取所有数字。

逻辑工作正常,但我无法找到我应该维护的确切数量的零,因为对于每组不同的数字(4 位 * 3 位)我得到不同数量的零。

有人可以帮忙吗?

0 投票
1 回答
262 浏览

matlab - MATLAB:从矩阵转换为逐元素乘法

我有这个代码:

矩阵 KM 动态改变电位 V 的形状。我在 ode 求解器中使用的 Fx。我想要的是能够写出 Fx(A,B),其中 A,B 是矩阵。我需要将 V=(x^2+y^2) 的结果转换为 V=(x.^2+y.^2)。任何想法?

0 投票
2 回答
1850 浏览

opengl-es - 在 OpenGL ES 2.0 中实现固定功能 Pipeline 高效?

我想在我的 openGL 2.0 应用程序中使用固定函数方法,如 glTranslate()、glRotate()、glScale()。我知道,我需要实现一个矩阵类——并且已经做到了。我现在的问题是关于效率。为了能够使用类似的东西:

我想,我需要做至少 3 次矩阵乘法(假设我们有一个投影和一个模型视图矩阵化,这是用于模型视图)。第一个是:Identity-Matrix*Rotation-Matrix - 第二个是:ActualMatrix*ScaleMatrix,最后一个是:projectionMatrix*ActualMatrix(并且这个 Im 作为统一值传递给我的着色器)。

所以我的顶点着色器看起来像:

在 OpenGL ES 1.1 中是否以同样的方式完成?看起来,我需要一个矩阵乘法:glRotate、glScale、glTranslate...调用——这对我来说似乎很重要。或者,还有更好的方法?(也许矩阵乘法较少?)

对此主题的任何帮助将不胜感激!感谢您阅读

0 投票
2 回答
2158 浏览

opengl-es - 矩阵乘法 - glTranslate 的自己实现?错误的矩阵

假设我有以下投影矩阵(它使用gluPerspective(40, 1.0, 0.2, 200.0);单位矩阵计算):

并想glTranslatef(0.0, 0.0, -10.0);对该矩阵执行命令。使用 openGL ES 1.1 功能,我收到了(我认为这似乎是正确的):

但是如果我使用自己的实现(openGL ES 2.0),我会遇到一些奇怪的行为:

我的代码与苹果的 openGLES1/2 示例和本网站http://iphonedevelopment.blogspot.com/2009/06/opengl-es-from-ground-up-part-7_04.html非常相似:

我现在调试了 2 天,现在知道我错过了什么......有什么想法吗?

0 投票
4 回答
7596 浏览

matlab - 每列的 MATLAB 矩阵乘法与 for 循环

将两个矩阵相乘时,我尝试了以下两个选项:

1)

2)

我在两者中都为 res 预先分配了内存。令人惊讶的是,我发现选项 2 更快。

有人可以解释这是怎么回事吗?

编辑:我试过

0 投票
3 回答
7972 浏览

ios - UIPinchGestureRecognizer 和 UIPanGestureRecognizer 可以合并吗?

我正在努力弄清楚是否可以创建一个将 UIPinchGestureRecognizer 与 UIPanGestureRecognizer 结合的单个组合手势识别器。

我正在使用平移来进行视图转换,并使用捏来进行视图缩放。我正在做增量矩阵连接以导出应用于视图的最终转换矩阵。这个矩阵既有尺度又有平移。使用单独的手势识别器会导致抖动/缩放。不是我想要的。因此,我想在一个手势中处理一次缩放和平移的串联。有人可以说明如何做到这一点吗?

0 投票
1 回答
1940 浏览

c++ - 矩阵乘法运行时间 Python < C++ < Matlab - 解释

我有一个矩阵M就是这样16384 x 81。我想计算M * M.t(结果将是16384x16384)。

我的问题是:有人可以解释运行时间差异吗?

在 C++中使用OpenCV以下代码需要18 秒

Python中,下面的代码只需要0.9 秒 18.8 秒(见下面的评论)

MATLAB中,以下代码需要17.7 秒


我唯一的猜测是这是一个内存问题,并且 Python 能够以某种方式避免交换空间。然而,当我观看top时,我并没有看到我C++ application使用了所有的内存,我曾预计这C++会赢得胜利。感谢您的任何见解。

编辑

在修改我的示例以仅对操作计时后,现在使用 Python 的代码也需要 18 秒。我真的不确定发生了什么,但是如果有足够的内存,它们现在似乎都执行相同的操作。

如果行数为 8192,以下是计时: C++:4.5 秒 Python:4.2 秒 Matlab:1.8 秒

0 投票
2 回答
1956 浏览

opengl - Opengl函数(glMultMatrixf())乘以变换矩阵与我自己的函数之间的区别

所有,我试图在OpenGL中将一个矩阵乘以一个向量,但事实证明,我通过调用自己的乘法得到的渲染结果function(OpenGLUtility::VectorMultiMatrix4d())与调用opengl函数不同glMultMatrixf()。画在屏幕上的两条线不一样。

我通过调用以下两种不同的方式来放置我的代码。函数 OpenGLUtility::VectorMultiMatrix4d() 很简单,只是列主乘法。

有人可以给我一些建议吗?非常感谢。


代码1:

//

代码 2

0 投票
2 回答
3508 浏览

matrix - 如何在c中乘以不同大小的矩阵

我正在寻找一种将 2x1 和 2x2 矩阵相乘的方法,但我的代码几乎每次都不起作用,即使它确实起作用,我也必须将数字放入代码中。如果我在运行代码时尝试询问数字,那就不行了

到目前为止,这是我的代码:

0 投票
1 回答
201 浏览

opengl - 对本地化矩阵感到困惑 - 在传递给 OpenGL 时有效,但在我自己的算术运算时无效?

我对我的问题在这里感到非常困惑。我已经建立了一个矩阵,它将全局/世界坐标转换为对象的局部坐标空间。该转换矩阵是使用来自四个向量(向前、向上、侧面和位置)的对象信息构建的。然后在每个对象的绘制时将此定位矩阵传递给glMultMatrixf(),以便我可以围绕每个对象绘制一个简单的轴以可视化局部坐标系。这完全可以正常工作并且符合预期,并且随着对象在世界中移动和旋转,它们的局部坐标轴也是如此。

问题是,当我采用相同的矩阵并将其乘以列向量(将一个对象的全局位置转换为另一个对象的局部坐标系)时,结果与我预期的完全不同。例如:

我的本地化矩阵如下:

我输入位置列向量:

并获得以下输出:

由于我的对象此时的位置是 (-50.8, 8.533, -11.602, 1),我知道 x 坐标的输出不可能像 -99.2362 一样大。此外,当我找到两个全局点之间的距离以及局部点与原点之间的距离时,它们是不同的。

我已经在 Matlab 中检查了这一点,看来我的矩阵乘法是正确的(注意:在 Matlab 中,您必须首先转置本地化矩阵)。所以我认为我的本地化矩阵没有正确构造 - 但是OpenGL成功地使用这个矩阵来绘制局部坐标轴!

我试图在这个问题中不包括不必要的细节,但如果你觉得你需要更多,请不要犹豫,问!:)

非常感谢。