问题标签 [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 回答
8782 浏览

c# - Strassen's Algorithm for Matrix multiplication c# implementation

我只是在自学算法和数据结构,我想知道是否有人有 Strassen 矩阵乘法算法的 C#(或 C++)实现?

我只是想运行它,看看它做了什么,并更多地了解它是如何工作的。

0 投票
2 回答
641 浏览

c++ - C/C++ 中大型非稀疏非方阵的多线程乘法

全部,

我正在寻找 C 或 C++ 库(最好是开源)的建议,这些库使用多线程技术来乘以大的非正方形(例如,大小为 65536xn,其中 n < 65536)非稀疏矩阵。谢谢。

-&&

0 投票
2 回答
1497 浏览

java - 什么是链矩阵乘法?

我试图了解什么是链矩阵乘法以及它与常规乘法有何不同。我已经检查了几个来源,但似乎都非常学术性地解释给我理解。

我想这是一种动态规划算法,以优化的方式实现操作,但我没有更进一步。

谢谢

0 投票
1 回答
2972 浏览

iphone - OpenGL ES 2.0:对象旋转问题

我知道在不同的论坛上已经多次询问了以下问题,但是在查看了不同的解决方案之后,它仍然没有解决我的问题,或者我没有明白他们的意思
我正在尝试使用 OpenGL ES 2.0 对金字塔建模苹果手机。
我想允许用户使用触摸屏旋转这个金字塔,这样他就可以查看形状的每个面。
我正在使用自己的矩阵实用程序,灵感来自OpenGL ES 2.0 Programming Guide书中给出的库。
我有一个简单的顶点着色器,它需要 2 个制服和 2 个属性。
这是我的顶点着色器:

因此,在我的渲染过程中,我创建了 2 个矩阵:modelView 和投影矩阵。

这是我的投影矩阵的初始化方式:

我的金字塔顶点设置如下:

最后,这是我的绘图代码:

一切似乎都很好,我的金字塔在这里,在 Z 轴上向后平移。
当我开始旋转形状时,问题就出现了,它看起来像是围绕用户旋转,而不是围绕自身旋转。
例如,当我从左到右触摸屏幕时,我看到金字塔在右边缘从屏幕中出来,然后从左边缘回到屏幕,就好像它在我周围绕了一圈一样:页。

我对我的矩阵管理代码非常确定,所以我决定不在这里发布它以避免这个问题中的代码过多。如果需要,我可以给它。

你知道我做错了什么吗?

非常感谢 !

汤姆

0 投票
3 回答
1132 浏览

f# - 在 F# 中并行化两个矩阵的元素乘法

我正在尝试并行化 F# 中两个矩阵的元素乘法。我想不通。我一直在尝试创建任务,但它从不想编译。我的非工作混乱代码如下:

0 投票
14 回答
4070 浏览

algorithm - 如何有效地存储具有高度冗余值的矩阵

我有一个非常大的矩阵(100M 行 x 100M 列),其中有很多相邻的重复值。例如:

我想要一个数据结构/算法来尽可能紧凑地存储这样的矩阵。例如,上面的矩阵应该只占用 O(1) 空间(即使矩阵被拉伸到任意大),因为只有恒定数量的矩形区域,每个区域只有一个值。

重复发生在行和下列中,因此逐行压缩矩阵的简单方法还不够好。(这将需要最少 O(num_rows) 空间来存储任何矩阵。)

矩阵的表示也需要逐行访问,以便我可以对列向量进行矩阵乘法。

0 投票
1 回答
168 浏览

sparse-matrix - 当边界条件可以改变时,如何以稀疏格式存储离散化的 3D 域(用于求解 PDE)?

我正在研究解决一个 PDE 问题,并且 3D 离散域可以在 6 个边界中的每一个上具有不同的边界条件(或全部相同)。

将此稀疏矩阵转换为压缩格式的最佳方法是什么?企业社会责任会是我在这里唯一的选择吗?我考虑过使用 ellpack,但我不确定它是如何改变边界条件的。

考虑 3d 空间的 2D 矩阵表示......它将主要以对角线为主,有 7 个对角线,但这些对角线可能会沿着边界发生变化。似乎我不能使用存储值的格式,以及每次都相同的对角线偏移量。

显然,我试图将这个问题设置为对我的 CG 求解器更加缓存友好,它正在做很多向量矩阵乘法

0 投票
2 回答
1215 浏览

matlab - 找到一个 1x3 矩阵,结果为零矩阵

我知道一个 3x3 矩阵 M,我想找到一个 1x3 矩阵 P。给定条件是:

给定的是[m11 m12 m13; m21 m22 m23; m31 m32 m33]

[p1 p2 p3]我必须找到使用 Matlab的非平凡(非零)解决方案。

我想在 Matlab 中完成,因为它是代码的一部分。如果需要,给定也是一个条件:
p1 + p2 + p3 = 1

PS:我尝试了'inv'函数,它给出了矩阵的逆,但是它给出了微不足道的解决方案。我也读过'svg'and'null'函数,但我怀疑它们是否适用于Ax=B类型,因为我的问题是xA=B类型。

0 投票
1 回答
1563 浏览

c++ - 矩阵变换问题 - Z 轴旋转倾斜

对于一个简单的 2d 游戏,我正在尝试使用矩阵围绕 z 轴旋转精灵。我显然做错了什么,因为当我尝试旋转我的精灵时,它看起来像是围绕屏幕原点(底部,左侧)而不是精灵原点旋转。我很困惑,因为我的四边形已经在原点,所以我认为我不需要翻译 -> 旋转并翻译回来。这是一个代码片段和一个小视频或错误的转换

== 更新:

这是结构和渲染代码:

我正在使用来自 oolongengine code.google.com/p/oolongengine/source/browse/trunk/Oolong%20Engine2/Math/Matrix.cpp 的矩阵类

我转换所有四边形,然后使用 OpenGL 渲染它们。这是我的数据结构和渲染代码:

0 投票
4 回答
10003 浏览

c# - 为什么.NET中的矩阵乘法这么慢?

我不太明白是什么让 C#/.NET(甚至 Java)中的矩阵乘法如此缓慢。

看看这个基准(来源):试图找到一个更新的基准。

Java vs C# vs C++ 细分

C# 的整数和双精度性能非常接近用 MSVC++ 编译的 C++。双精度的 87% 和 32 位整数的 99%。相当不错,我会说。但是再看看矩阵乘法。差距扩大到 C# 的速度大约是 19%。这是一个相当大的差异,我不明白。矩阵乘法只是一堆简单的数学运算。怎么变得这么慢?它不应该与等量的简单浮点或整数运算大致一样快吗?

这对于游戏和 XNA 尤其重要,其中矩阵和矢量性能对于物理引擎之类的东西至关重要。前段时间,Mono 通过一些漂亮的向量和矩阵类增加了对 SIMD 指令的支持。它缩小了差距,使 Mono 比手写 C++ 更快,尽管不如带有 SIMD 的 C++ 快。(来源

矩阵乘法比较

这里发生了什么?

编辑:仔细看,我误读了第二张图。C# 看起来非常接近。第一个基准测试只是做一些可怕的错误吗?抱歉,我错过了第一个基准测试的版本号。我把它作为我一直听到的“C# 线性代数很慢”的方便参考。我会尝试找到另一个。