vectorization相关内容

映射 2 个向量 - 帮助向量化

在 Matlab 中工作我有 2 个不同长度的 x 坐标向量.例如: xm = [15 20 24 25 26 35 81 84 93];xn = [14 22 26 51 55 59 70 75 89 96]; 我需要将 xm 映射到 xn,或者换句话说,找出 xn 中哪些坐标最接近 xm.因此,如果我有与这些坐标关联的值,我可以使用这张地图作为索引并将这些值关联起来. 两个向量都已排 ..
发布时间:2021-12-08 14:55:16 其他开发

有效计算外积的 3D 矩阵 - MATLAB

假设我有一个像这样的元素矩阵: A = reshape(1:25, 5, 5)一 =1 6 11 16 212 7 12 17 223 8 13 18 234 9 14 19 245 10 15 20 25 我想有效地计算外积的 3D 矩阵,使得该输出矩阵的第 ith 个切片是第 ith 列的外积A 与自身.两个向量 u 和 v 之间的外积就是 u*v.' 如果 u 和 v 都是列向量. ..
发布时间:2021-12-08 14:47:51 其他开发

向量化冒号 (:) 的概念 - MATLAB 中两个向量之间的值

我有两个向量,idx1 和 idx2,我想获取它们之间的值.如果 idx1 和 idx2 是数字而不是向量,我可以这样做: idx1=1;idx2=5;值=idx1:idx2% 结果% 值 =%% 1 2 3 4 5 但在我的例子中,idx1 和 idx2 是可变长度的向量.例如,对于长度=2: idx1=[5,9];idx2=[9 11]; 我可以使用冒号运算符直接获取两者之间的值吗?这 ..
发布时间:2021-12-08 14:47:15 其他开发

为什么重塑如此之快?(剧透:写时复制)

我有一个大矩阵 A,它是 1GB 的双值,当我将它重塑为不同的维度时,速度非常快. A=rand(128,1024,1024);tic;B=reshape(A,1024,128,1024);toc经过的时间是 0.000011 秒. 怎么会这么快?另一个观察结果是,在运行该代码并存储两个 1GB 矩阵后,MATLAB 使用的内存少于应有的内存:MATLAB 使用的内存:1878 MB(1.96 ..
发布时间:2021-12-08 14:45:25 其他开发

将 3D 矩阵与 2D 矩阵相乘

假设我有一个 AxBxC 矩阵 X 和一个 BxD 矩阵 Y. 是否有一种非循环方法可以将每个 C AxB 矩阵与 Y 相乘? 解决方案 您可以在一行中使用函数 NUM2CELL 将矩阵 X 分解为元胞数组和 CELLFUN 跨单元操作: Z = cellfun(@(x) x*Y,num2cell(X,[1 2]),'UniformOutput',false); 结果 Z 是一个 ..
发布时间:2021-12-08 14:39:30 其他开发

如何在对角线上为 MATLAB 矩阵赋值?

假设我有一个 NxN 矩阵 A、一个由数字 1:N 的子集组成的索引向量 V 和一个值 K,我想这样做: for i = VA(i,i) = K结尾 有没有办法在一个带有矢量化的语句中做到这一点? 例如A(某事) = K 语句 A(V,V) = K 不起作用,它分配了非对角元素,这不是我想要的.例如: >>A = 零(5);>>V = [1 3 4];>>A(V,V) = 1一 ..
发布时间:2021-12-08 14:35:24 其他开发

创建一个零填充的二维数组,其中一个位于由向量索引的位置

我正在尝试对以下 MATLAB 操作进行矢量化: 给定一个带索引的列向量,我想要一个矩阵相同行数的列和固定数量的列.这矩阵用零初始化并在位置中包含一个由索引指定. 这是我已经编写的脚本示例: y = [1;3;2;1;3];m = 大小(y, 1);% for 循环yvec = 零点(米,3);对于 i=1:myvec(i, y(i)) = 1;结尾 想要的结果是: yvec = ..
发布时间:2021-12-08 14:31:35 其他开发

查找序列中的零岛

想象一下你有一个很长的序列.找到序列全为零(或更准确地说,序列下降到接近零值abs(X))的区间的最有效方法是什么: 为简单起见,我们假设以下顺序: sig = [1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 0]; 我正在尝试获取以下信息: startIndex EndIndex 持续时间3 6 412 12 11 ..
发布时间:2021-12-08 14:21:48 其他开发

比较 BSXFUN 和 REPMAT

之前关于 bsxfun 和 repmat 之间性能比较的问题很少. 其中之一是:Matlab - bsxfun 不再比 repmat 快?.这个试图研究 repmat 和 bsxfun 之间的性能比较,特别是执行从输入数组本身沿列减去输入数组的平均值,因此将仅探索@minus 部分 bsxfun 与其 repmat 等效. 另一个是:在 Matlab 中,什么时候使用 bsxfun 是最佳 ..
发布时间:2021-12-08 11:26:56 其他开发

为什么在单独循环中按元素添加比在组合循环中快得多?

假设a1、b1、c1和d1指向堆内存,我的数字代码有以下核心循环. const int n = 100000;for (int j = 0; j 此循环通过另一个外部 for 循环执行 10,000 次.为了加快速度,我将代码更改为: for (int j = 0; j 在 Microsoft Visual C++ 10.0 上编译,经过全面优化和 SSE2 在 Intel Core ..
发布时间:2021-12-08 11:05:47 C/C++开发

Python 向量化嵌套 for 循环

如果您能帮助我找到并理解在嵌套 for 循环中优化以下数组操作的 Pythonic 方法,我将不胜感激: def _func(a, b, radius):“如果 a> b 返回 0,否则返回 1"如果 distance.euclidean(a, b) 其中 volume.shape (182, 218, 200) 和 roi.shape (3,) 都是 ndarray 类型;而 radius ..
发布时间:2021-12-08 09:51:12 Python

用于多个开始和停止值的矢量化 NumPy linspace

我需要创建一个二维数组,其中每一行都可以以不同的数字开始和结束.假设给定了每行的第一个和最后一个元素,并且所有其他元素只是根据行的长度进行插值在一个简单的情况下,假设我想创建一个 3X3 数组,其起点相同,但结尾不同,由 W 下面给出: array([[ 0., 1., 2.],[0., 2., 4.],[ 0., 3., 6.]]) 有没有比以下更好的方法来做到这一点: D=np.ones ..

矢量化搜索排序 numpy

假设我有两个数组 A 和 B,其中 A 和 B 都是 mxn.我现在的目标是,对于 A 和 B 的每一行,找到我应该在哪里插入 A 的 i 行的元素在B对应的行.也就是说,我希望将 np.digitize 或 np.searchsorted 应用于 A 和 B 的每一行. 我天真的解决方案是简单地遍历行.但是,这对我的应用程序来说太慢了.因此,我的问题是:是否存在我尚未找到的任一算法的矢量化 ..
发布时间:2021-12-08 09:22:18 Python

每行的 Bin 元素 - NumPy 的矢量化 2D Bincount

我有一个带有整数值的 NumPy 数组.矩阵的值范围从 0 到矩阵中的最大元素(换句话说,从 0 到最大数据元素的所有数字都在其中).我需要构建有效(有效意味着快速完全矢量化的解决方案)来搜索每行中的元素数量并根据矩阵值对它们进行编码. 我找不到类似的问题,或以某种方式帮助解决此问题的问题. 所以如果我在输入中有这个 data: # 形状为 (N0=4, m0=4)1 1 0 42 ..
发布时间:2021-12-08 09:19:48 Python

是否可以矢量化 NumPy 数组的递归计算,其中每个元素都依赖于前一个元素?

T(i) = Tm(i) + (T(i-1)-Tm(i))**(-tau(i)) Tm 和 tau 是之前计算过的相同长度的 NumPy 向量,希望创建一个新的向量 T.i 仅用于指示所需内容的元素索引. 在这种情况下是否需要 for 循环? 解决方案 你可能认为这行得通: 将 numpy 导入为 npn = len(Tm)t = np.empty(n)t[0] = 0 # 或任 ..
发布时间:2021-12-08 09:16:39 Python