问题标签 [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.

0 投票
1 回答
1495 浏览

matlab - 在 MATLAB 中对循环进行矢量化

我不太确定这是否可能,但我对 MATLAB 的理解肯定会更好。

我有一些我希望矢量化的代码,因为它在我的程序中造成了相当大的瓶颈。它是优化例程的一部分,它有许多可能的短期平均 (STA)、长期平均 (LTA) 和灵敏度 (OnSense) 配置来运行。

时间是矢量格式,FL2onSS 是主要数据(Nx1 双精度),FL2onSSSTA 是它的 STA(NxSTA 双精度),FL2onSSThresh 是它的阈值(NxLTAxOnSense 双精度)

这个想法是计算一个红色警报矩阵,它将是 4D - 在整个程序的其余部分中使用的 alarmStatexSTAxLTAxOnSense。

我目前有这个重复的功能,试图从中获得更快的速度,但显然如果整个事情可以矢量化会更好。换句话说,如果有更好的解决方案,我不需要保留该功能。

代码很简单,我就不再解释了。如果您需要说明特定线路在做什么,请告诉我。

0 投票
2 回答
204 浏览

matlab - 在不使用循环的情况下将函数应用于矩阵的子元素的正确语法是什么?

我定义了一个函数(GetDepth),它做一些相当简单的事情,例如接受一个 2x4 矩阵并输出一个 2x1 矩阵。然后我有一个 2x4xn 矩阵我想将它应用到,我期待一个 2x1xn 矩阵结果。

在不使用循环的情况下将我的函数应用于矩阵的正确语法是什么?

编。根据要求,这是我正在尝试做的事情的一个例子:

目前,我正在循环并输入 2x1xn 输出

0 投票
12 回答
108230 浏览

matlab - 如何将函数应用于 MATLAB 中矩阵的每一行/列?

您可以通过说,例如,将函数应用于向量中的每个项目v + 1,或者您可以使用函数arrayfun。如何在不使用 for 循环的情况下对矩阵的每一行/列执行此操作?

0 投票
4 回答
214 浏览

matlab - 下面的循环可以向量化吗?

我有一个执行以下功能的for循环:

取一个 M x 8 矩阵和:

  1. 将其拆分为大小为 512 个元素的块(表示 X 乘以 8 的矩阵 == 512,元素个数可以是 128,256,512,1024,2048)
  2. 将块重塑为 1 x 512(元素数)矩阵。
  3. 取矩阵的最后 1/4 放在前面,
    例如Data = [Data(1,385:512),Data(1,1:384)];

以下是我的代码:

使用 500 万个元素运行此循环将需要 1 个多小时。我需要它尽可能快(以秒为单位)。这个循环可以被矢量化吗?

0 投票
6 回答
10882 浏览

matlab - MATLAB:计算时间序列的每个 1 分钟间隔的平均值

我有一堆时间序列,每个时间序列由两个组件描述,一个时间戳向量(以秒为单位)和一个测量值向量。时间向量是不均匀的(即以不规则的间隔采样)

我正在尝试计算每个 1 分钟间隔值的平均值/标准差(取 X 分钟间隔,计算其平均值,取下一个间隔,...)。

我当前的实现使用循环。这是我到目前为止的一个示例:

我想知道是否有更快的矢量化解决方案。这很重要,因为我有大量时间序列要处理的时间比上面显示的样本要长得多。

欢迎任何帮助。


谢谢大家的反馈。

我更正了t生成方式总是单调递增(排序),这不是一个真正的问题..

另外,我可能没有清楚地说明这一点,但我的意图是在几分钟内找到任何间隔长度的解决方案(1 分钟只是一个例子)

0 投票
5 回答
1184 浏览

x86 - 是否可以矢量化 myNum += a[b[i]] * c[i]; 在 x86_64 上?

我将使用什么内在函数在 x86_64 上对以下内容进行矢量化(如果甚至可以矢量化)?

0 投票
1 回答
5399 浏览

matlab - MATLAB 中的均值滤波器,没有循环或信号处理工具箱

我需要在数据集上实现均值滤波器,但我无权访问信号处理工具箱。有没有办法在不使用 for 循环的情况下做到这一点?这是我正在工作的代码:

编辑:

实施merv的方案后,内置的filter方法滞后于原始信号。有没有解决的办法? 替代文字

0 投票
1 回答
171 浏览

r - 是否有更好的(即矢量化)方法将列名的一部分放入 R 中的数据框行中

我在 R 中有一个数据框,它来自于对熔化/铸造操作的结果运行一些统计数据。我想在包含 Nominal 值的数据框中添加一行。该标称值出现在每列的名称中

所以,我想创建一个新行,在 Var A_100 列中包含“100”,在 Var B_5 中包含“5”。目前这就是我正在做的事情,但我确信必须有更好的矢量化方式来做到这一点。

通常我会有 16-24 列。有任何想法吗?

0 投票
1 回答
627 浏览

windows - 使用 Intel Visual FORTRAN for X64 对代码进行矢量化

我在 Windows Server 2003 Enterprise X64 Edition 上使用 Intel Visual FORTRAN 编译我的 fortran90 代码。当我为 32 位结构编译代码并使用自动和手动矢量化选项时。代码将被编译、矢量化。当我在 8 核系统上运行它时,编译后的代码使用了 70% 的 CPU,这表明矢量化正在工作。但是当我用 64 位编译器编译代码时,它说代码是矢量化的,但是当我运行它时,它只显示大约 12% 的 CPU 使用率,这是 8 个内核中一个内核的完全使用率,所以这意味着编译器说代码是矢量化的,矢量化不起作用。

这对我来说很奇怪,因为它是在 X64 版 Windows 上,我期待看到相反的结果。我认为最好在 64 位窗口上运行为 64 位架构编译的代码。

任何人都知道为什么编译的代码不能为 64 位编译版本使用多核的全部功能?

0 投票
3 回答
4282 浏览

python - 在numpy/scipy中矢量化for循环?

我正在尝试对类方法内部的 for 循环进行矢量化。for 循环具有以下形式:它遍历一堆点并根据某个变量(下面称为“self.condition_met”)是否为真,在该点上调用一对函数,并将结果添加到列表中. 这里的每个点都是列表向量中的一个元素,即看起来像数组([[1,2,3],[4,5,6],...])的数据结构。这是有问题的功能:

self.condition_met 是在调用 my_inefficient_method 之前设置的,所以似乎没有必要每次都检查它,但我不知道如何更好地写这个。由于这里没有破坏性操作,似乎我可以将整个事情重写为矢量化操作——这可能吗?任何想法如何做到这一点?