问题标签 [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.
java - 矩形/格子乘法
我正在尝试在 Java 中实现矩形/格子乘法。对于那些不知道的人,这是一个简短的教程。
我尝试了一些方法,其中我使用单个数组来存储两位数的乘法并将 sigma-append 零添加到它。一旦所有数字都相乘,我从数组中选择两个元素,然后添加 sigma 值并再获取两个数字,然后再次执行相同的操作,直到获取所有数字。
逻辑工作正常,但我无法找到我应该维护的确切数量的零,因为对于每组不同的数字(4 位 * 3 位)我得到不同数量的零。
有人可以帮忙吗?
matlab - MATLAB:从矩阵转换为逐元素乘法
我有这个代码:
矩阵 KM 动态改变电位 V 的形状。我在 ode 求解器中使用的 Fx。我想要的是能够写出 Fx(A,B),其中 A,B 是矩阵。我需要将 V=(x^2+y^2) 的结果转换为 V=(x.^2+y.^2)。任何想法?
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...调用——这对我来说似乎很重要。或者,还有更好的方法?(也许矩阵乘法较少?)
对此主题的任何帮助将不胜感激!感谢您阅读
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 天,现在知道我错过了什么......有什么想法吗?
matlab - 每列的 MATLAB 矩阵乘法与 for 循环
将两个矩阵相乘时,我尝试了以下两个选项:
1)
2)
我在两者中都为 res 预先分配了内存。令人惊讶的是,我发现选项 2 更快。
有人可以解释这是怎么回事吗?
编辑:我试过
ios - UIPinchGestureRecognizer 和 UIPanGestureRecognizer 可以合并吗?
我正在努力弄清楚是否可以创建一个将 UIPinchGestureRecognizer 与 UIPanGestureRecognizer 结合的单个组合手势识别器。
我正在使用平移来进行视图转换,并使用捏来进行视图缩放。我正在做增量矩阵连接以导出应用于视图的最终转换矩阵。这个矩阵既有尺度又有平移。使用单独的手势识别器会导致抖动/缩放。不是我想要的。因此,我想在一个手势中处理一次缩放和平移的串联。有人可以说明如何做到这一点吗?
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 秒
opengl - Opengl函数(glMultMatrixf())乘以变换矩阵与我自己的函数之间的区别
所有,我试图在OpenGL中将一个矩阵乘以一个向量,但事实证明,我通过调用自己的乘法得到的渲染结果function(OpenGLUtility::VectorMultiMatrix4d())
与调用opengl函数不同glMultMatrixf()
。画在屏幕上的两条线不一样。
我通过调用以下两种不同的方式来放置我的代码。函数 OpenGLUtility::VectorMultiMatrix4d() 很简单,只是列主乘法。
有人可以给我一些建议吗?非常感谢。
代码1:
//
代码 2
matrix - 如何在c中乘以不同大小的矩阵
我正在寻找一种将 2x1 和 2x2 矩阵相乘的方法,但我的代码几乎每次都不起作用,即使它确实起作用,我也必须将数字放入代码中。如果我在运行代码时尝试询问数字,那就不行了
到目前为止,这是我的代码:
opengl - 对本地化矩阵感到困惑 - 在传递给 OpenGL 时有效,但在我自己的算术运算时无效?
我对我的问题在这里感到非常困惑。我已经建立了一个矩阵,它将全局/世界坐标转换为对象的局部坐标空间。该转换矩阵是使用来自四个向量(向前、向上、侧面和位置)的对象信息构建的。然后在每个对象的绘制时将此定位矩阵传递给glMultMatrixf()
,以便我可以围绕每个对象绘制一个简单的轴以可视化局部坐标系。这完全可以正常工作并且符合预期,并且随着对象在世界中移动和旋转,它们的局部坐标轴也是如此。
问题是,当我采用相同的矩阵并将其乘以列向量(将一个对象的全局位置转换为另一个对象的局部坐标系)时,结果与我预期的完全不同。例如:
我的本地化矩阵如下:
我输入位置列向量:
并获得以下输出:
由于我的对象此时的位置是 (-50.8, 8.533, -11.602, 1),我知道 x 坐标的输出不可能像 -99.2362 一样大。此外,当我找到两个全局点之间的距离以及局部点与原点之间的距离时,它们是不同的。
我已经在 Matlab 中检查了这一点,看来我的矩阵乘法是正确的(注意:在 Matlab 中,您必须首先转置本地化矩阵)。所以我认为我的本地化矩阵没有正确构造 - 但是OpenGL成功地使用这个矩阵来绘制局部坐标轴!
我试图在这个问题中不包括不必要的细节,但如果你觉得你需要更多,请不要犹豫,问!:)
非常感谢。