问题标签 [vectorization]
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.
optimization - 同时分配给矩阵的多个子矩阵。可能通过矢量化索引进行优化
有没有一种聪明的方法来矢量化一个将元素分配给矩阵子矩阵的 for 循环?
最初,我有两个 for 循环:
然后我对内部循环进行矢量化,这样代码现在读取
这将我的 CPU 时间减少了 90% 以上,所以我想知道是否可以对外部循环执行相同的操作,但这似乎有点棘手,因为我在 U 矩阵中分配了 (6x1) 矩阵。我试过
但这失败了,因为 i:i+5 只取出我想要的前 6 个索引。
我也尝试使用 reshape() 函数将矩阵转换为向量,但一次分配给多个元素块似乎仍然很困难。代码中总共有三个这样的 for 循环,所以我想另一种优化是以某种方式并行化它们。但是,如果无法访问并行工具箱,在我看来,如果可能的话,矢量化是一个很好的解决方案。
该代码是数值有限差分法中子程序的一部分,用于求解网格上的 6 个方程组,因此这个问题可能与任何在方程组(尤其是PDE )上进行矩阵计算的人相关。对优化代码的建议将不胜感激!
math - 两点的方向
一些高中数学概念已经忘记了,所以我在这里问。
如果我有两个点p1(x1,y1)
,p2(x2,y2)
,方向是P1-->p2
,那就是p1
指向p2
。用向量来表示这个方向,是Vector(x2-x1,y2-y1)
还是Vector(x1-x2, y1-y2)
?
顺便说一句,标准化向量的目的是什么?
matlab - FFT 和改变频率并矢量化 FOR 循环
FFT和改变频率和矢量化循环
问候所有
我可以在下面的代码中使用 fft 和傅立叶级数展开 FOR 循环的组合来增加和减少信号的频率,但是如果信号/数组太大,它会变得非常慢(1x44100 的数组大约需要 2 分钟才能完成) 我确定它与 for 循环有关,但我不确定如何对其进行矢量化以提高性能。请注意,这将用于 3 到 6 分钟长的音频信号。1x44100阵列仅需一秒,大约需要2分钟完成
任何建议
如果有人想查看输出,这是该图的图片,这是正确的 FOR 循环真的很慢
c++ - 使用联合将相同的内存分配给类成员变量
我正在尝试矢量化现有的 Vector 类
尝试向量化类成员而不影响访问这些成员变量的其他类
但是由于没有找到成员名称 X,Y,Z 存在编译器错误。是否有另一种获取变量的方法?
作为参考,该vector float
类型来自IBM™ Cell Broadband Engine™ Software Development Kit V3.0 for Multicore Acceleration。
r - 在 R 中并行化矢量化函数的最简单方法是什么?
我有一个非常大的列表X
和一个矢量化函数f
。我想计算f(X)
,但如果我用单核来计算,这将需要很长时间。我有(访问)一个 48 核服务器。并行计算的最简单方法是f(X)
什么?以下不是正确答案:
上面的代码确实会并行化 的计算f(X)
,但它会通过f
分别应用于 的每个元素来实现X
。这忽略了向量化的性质,f
因此可能会使事情变慢,而不是更快。我不想将f
元素应用于X
,而是想分成X
大小合理的块并应用于f
这些块。
那么,我是否应该手动拆分X
为 48 个大小相等的子列表,然后并行应用f
到每个子列表,然后手动将结果放在一起?或者是否有为此设计的软件包?
如果有人想知道,我的具体用例在这里。
r - 是否有用于查找向量中元素索引的 R 函数?
在 R 中,我有一个元素x
和一个向量v
。我想找到v
等于的元素的第一个索引x
。我知道这样做的一种方法是:which(x == v)[[1]]
,但这似乎效率太低了。有没有更直接的方法呢?
x
对于奖励积分,如果是向量,是否有有效的函数?也就是说,它应该返回一个索引向量,指示 in 的每个元素的x
位置v
。
r - 是否有矢量化并行 max() 和 min()?
我有一个data.frame
列“a”和“b”。我想添加名为“高”和“低”的列,其中包含列 a 和 b 中的最高和最低。
有没有办法在不循环数据帧中的行的情况下做到这一点?
编辑:这是针对 OHLC 数据的,因此高低列应包含同一行上 a 和 b 之间的最高和最低元素,而不是在整个列中。对不起,如果这措辞不好。
matlab - 加速“for”循环或向量化它们
我已经写了一些代码,但是我的程序太慢了。问题如下:
我将构建矩阵“A”来解决 Ax=b 问题
我有一个球体(它可以是任何形状),从某个点可以看出,
我为每个点分配了一个坐标向量 [xyz]。
N 是点数。
请先加载(一)
我不知道我可以清楚地解释吗?
你有什么建议吗?在此先感谢您的任何建议。
geometrySphere 其中 I 是 3x3 单位矩阵,nij nij 表示二元乘积。
(a) 运行一个函数后是:一个1x200的数组
matlab - 如何计算两个向量都具有给定值的位置数?
说A
和B
是 2 个向量,其中length(A) = length(B)
。A
和的所有元素B
都是0
或1
。如何在 1 行中计算两个向量都有值的位置数1
?