bsxfun相关内容

如何在不使用for循环的情况下求和不同大小的矩阵的各个部分?

我有一个相对较大的矩阵NxN(N〜20,000)和一个Nx1向量,用于标识必须分组在一起的索引. 我想将矩阵的各个部分加在一起,原则上可以有不同数量的元素和不相邻的元素. 我很快写了一个双for循环,它可以正常工作,但是效率很低.探查器将这些循环识别为我的代码中的瓶颈之一. 我试图找到一种智能的矢量化方法来解决该问题.我研究了arrayfun,cellfun和bsxfun函数,并寻找解 ..
发布时间:2020-05-06 14:25:17 其他开发

在Matlab中无法理解矩阵列的滑动窗口,一般情况和特殊情况

我是菜鸟,我在Slinding Window的堆栈上发现了非常零散的信息. 我有一个mXn矩阵,其中m是固定的(纬度,经度,ax,ay,az),n可以根据不同的对数进行更改. 1)如何在不提取向量然后对其进行分析的情况下仅为z创建滑动窗口? 2)如果我要保存az标准偏差超过定义的阈值的所有行,我该怎么做? 3)如果日志长度不固定,我该如何处理? (例如,一个文件包含932行 ..
发布时间:2020-05-06 14:14:38 其他开发

优化嵌套循环以计算矩阵行的xcorr

我有2个嵌套循环,它们执行以下操作: 获取两行矩阵 检查索引是否满足条件 如果这样做,请计算两行之间的xcorr并将其放入新向量中 找到子向量的最大值的索引,并用该值替换LAG矩阵的元素 我不知道如何通过向量化或其他方式来加快此代码的速度. b=size(data,1); F=size(data,2); LAG= zeros(b,b); for i=1:b f ..
发布时间:2020-05-06 14:11:31 其他开发

在空间矩阵乘法之后找到索引位置. bsxfun已实现

在复杂的矩阵乘法之后,我需要帮助找到一个矩阵的索引位置和两个向量,请耐心阅读我的第一篇,最后我的问题来了. 我有两个矩阵L1和L2: L1 = firstMatrix; L2 = secondMatrix; 我需要计算L1中每个单个值与所有L2值的差异(列方式),同样,以列方式,如下所示: 第一步 lib1 = bsxfun(@minus, L1(:,1)',L2(:, ..
发布时间:2020-05-06 14:08:33 其他开发

从阵列的每一行中减去多个向量(超级广播)

我有一个数据集,X是m x 2,三个向量存储在一个矩阵C = [c1'; c2'; c3']中,它是3 x 2.我正在尝试对我的代码进行矢量化处理,该代码针对X中的每个数据点,找到C中的哪个矢量最接近(平方距离).我想从X中的每个矢量(行)中减去C中的每个矢量(行),从而得到m x 6或3m x 2元素之间的差值的m x 6或3m x 2矩阵c5>.我当前的实现一次在X中执行这一行: for ..
发布时间:2020-05-06 14:05:51 其他开发

Matlab中大型非稀疏矩阵的有效运算

我需要在Matlab中的3维大稀疏矩阵中进行运算.使用纯矢量化会产生较高的计算时间.因此,我尝试将操作分成10个块,然后解析结果. 当我看到纯向量化不能很好地缩放数据大小时,我感到惊讶,如下图所示. 我提供了这两种方法的示例. % Parameters: M = 1e6; N = 50; L = 4; K = 10; % Method 1: Pure vectorization ..
发布时间:2020-05-06 14:00:57 其他开发

避免sub2ind和ind2sub

我需要在3D的某个点附近访问多个索引. 例如,对于点(x1,y1,z1),我需要获取其3x3x3邻域的所有索引,以使(x1,y1,z1)居中.对于3号邻域,我用 [x,y,z] = meshgrid(-1:1,-1:1,-1:1); x_neighbors = bsxfun(@plus,x,x1); y_neighbors = bsxfun(@plus,y,y1); z_neighb ..
发布时间:2020-05-06 13:49:06 其他开发

面向程序员的MATLAB教程

我很快就会有一些新学生,他们将编写MATLAB代码.他们是MATLAB的新手,但是他们有使用Java和C ++进行编码的经验. 我要让他们通过入门 MATLAB帮助部分.另外,我想给一个小教程,目的是防止他们犯人们在切换到MATLAB时犯的一些最常见的错误(例如"MATLAB从1开始计数"),并向他们展示一些他们可能不会意识到的功能.请注意何时来自其他语言(例如“您可以直接从数组中减去标量, ..
发布时间:2020-05-06 13:27:46 其他开发

bsxfun是否真的在元素上应用了?

假设我具有以下功能: function x = printAndKeepX(x, y) x y end ,我像这样调用bsxfun: bsxfun(@printAndKeepX, 1:4, 1); 实际上是逐个元素,我希望printAndKeepX被调用4次,而(x, y)的参数分别是(1, 1),(2, 1),(3, 1)和(4, 1) .但是输出显示,仅在( ..
发布时间:2020-05-06 13:10:18 其他开发

Matlab的bsxfun()代码

这是做什么的? u = [5 6]; s = [1 1]; data1 =[randn(10,1) -1*ones(10,1)]; data2 =[randn(10,1) ones(10,1)]; data = [data1; data2]; deviance = bsxfun(@minus,data,u); deviance = bsxfun(@rdivide,de ..
发布时间:2020-05-06 13:07:01 其他开发

使用`bsxfun`处理非数值数据

非数值数据是否等于bsxfun? 例如,我想比较存储在两个单元格数组中的所有字符串对: >> a = {'aa', 'bb', 'cc'}; >> b = {'dd', 'aa'}; >> bsxfun( @strcmp, a, b' ); % not working for cells :-( 解决方案 恐怕单元格数组没有这样的等效项:-( 据我所知,您可以: 遵循 ..
发布时间:2020-05-06 13:03:07 其他开发

矩阵的幂

我有一个方矩阵A(nxn).我想将此矩阵的k次幂创建为nxnxk多维矩阵(不是逐个元素,而是矩阵的实际幂),即得到[A^0 A^1 A^2..A^k].这是用于矩阵盒的各种vandermonde. 我可以通过循环来做到这一点,但是这很烦人而且很慢.我尝试使用bsxfun,但是没有运气,因为我可能在这里错过了一些东西. 这是我做的一个简单循环: for j=1:1:100 ..
发布时间:2020-05-06 12:14:10 其他开发

与bsxfun相比,隐式扩展要快多少?

作为进行了评论由史蒂夫·爱丁斯, bsxfun 用于较小的数组,而对于大型数组具有相似的速度: 在R2016b中,在大多数情况下,隐式扩展的运行速度与bsxfun一样快或更快.隐式扩展的最佳性能提升是在较小的矩阵和数组大小的情况下进行的.对于较大的矩阵,隐式扩展的速度通常与bsxfun相同. 此外,展开所沿的维度可能会产生影响: 第一维扩展时,运算符可能不如bsxfun快. ..
发布时间:2020-05-06 12:12:35 其他开发