标签: vectorization

Matlab:使用矢量化在固定的第一个和最后一个元素中搜索矩阵中的行

我有一个像下面这样的矩阵(任意cols/rows):

1    0    0    0    0
1    2    0    0    0
1    2    3    0    0
1    2    3    4    0
1    2    3    4    5
1    2    5    0    0
1    2    5    3    0
1    2    5    3    4
1    4    0    0    0
1    4    2    0    0
1    4    2    3    0
1    4    2    5    0
1    4    2    5    3
1    4    5    0    0
1    4    5    3    0
2    0    0    0 …
Run Code Online (Sandbox Code Playgroud)

matlab matrix vectorization find

1
推荐指数
1
解决办法
1147
查看次数

Matlab嵌套循环到矢量化

如果我有一个for带有嵌套for循环的循环,使用一个循环将值输入到方形矩阵中for,循环通过我的Y轴,另一个循环通过我的X轴

我怎样才能将其改为矢量化以提高效率

g=zeros(f);

%y loop
for u = 1:f
    %x loop
    for v = 1:f
        g(u,v) = exp(-(((u-u0)^2)+((v-u0)^2))/(2*(sigma^2)))  
    end
end
Run Code Online (Sandbox Code Playgroud)

matlab for-loop nested vectorization

1
推荐指数
1
解决办法
236
查看次数

在MATLAB中改善循环性能

有没有办法通过这种操作来提高性能?

t=0:0.01:100;
f=@(t,l) exp(-t.*l)
l=[0.1:0.5:100];
for ll=1:length(l)
    a(ll,:)=f(t,l(ll));
end 
Run Code Online (Sandbox Code Playgroud)

在这些情况下,我想不出任何避免循环的方法.

任何帮助表示赞赏.

arrays optimization performance matlab vectorization

1
推荐指数
1
解决办法
104
查看次数

Matlab:在某些条件下将二维矩阵中的值插入三维矩阵

输出是一个3d矩阵,size(output) == [height width N]输入是一个2d矩阵size(input) == [height width].我需要在一行中实现以下代码.

for k = 1:size(output,3)
    f = output(:,:,k);
    i_zero = (f==0);
    f(is_zero) = input(is_zero);
    output(:,:,k) = f;
end
Run Code Online (Sandbox Code Playgroud)

matlab matrix vectorization

1
推荐指数
1
解决办法
103
查看次数

将X,Y向量给出的特定索引分配给某些数字MATLAB

我真的错过了一些非常基本的东西,

问题: 我有一个2D矩阵说

A =   8     1     6
      3     5     7
      4     9     2
Run Code Online (Sandbox Code Playgroud)

现在我有一些X和Y索引作为向量

X = [1 2 3]
Y = [1 2 3]
Run Code Online (Sandbox Code Playgroud)

现在我想(1,1), (2,2), (3,3)A要分配一定的价值说1

预期产量:

out =   1     1     6
        3     1     7
        4     9     1
Run Code Online (Sandbox Code Playgroud)

indexing matlab matrix vectorization

1
推荐指数
1
解决办法
40
查看次数

累积到桶 - 矢量化

这个问题是关于MATLAB的有效实现.使用for循环时这是微不足道的!

假设我有一个2列向量,其中每行的第一个元素是索引,第二个是实数.

我想积累属于每个索引的所有元素.

例如:

V = [1 1; 
     2 3; 
     1 4; 
     2 5 ];
Run Code Online (Sandbox Code Playgroud)

然后结果是:

R = [1 5; 2 8];
Run Code Online (Sandbox Code Playgroud)

第一行是因为添加第1和第3个元素得到5而第二个是添加第2和第4个元素.

我可以假设知道桶的最大数量(即桶是1..MAX),我希望结果向量具有MAX行.

matlab vectorization

1
推荐指数
1
解决办法
37
查看次数

一次拟合多个公式,比lapply更快的选择?

我有一个要适合数据的公式列表,而不是运行一个循环,出于性能考虑,我想立即执行此操作。估算应该仍然是分开的,我不是要估算SUR或其他任何值。下面的代码做我想要的

x <- matrix(rnorm(300),ncol=3)
y <- x %*% c(1,2,3)+rnorm(100)
formulae <-list(y~x[,1],
                y~x[,2],
                y~x[,1] + x[,2])
lapply(formulae,lm)
Run Code Online (Sandbox Code Playgroud)

不幸的是,formulae随着增加长度的增加,这变得有些慢了,有没有办法真正将其向量化?

如果有帮助,lm我唯一关心的结果就是系数和一些标准误差。

r vectorization lm

1
推荐指数
1
解决办法
278
查看次数

Python中的快速求和

我想做一系列的点产品.亦即

for i in range(N[0]):
  for j in range(N[1]):
    kr[i,j] = dot(k[i,j,:], r[i,j,:])
Run Code Online (Sandbox Code Playgroud)

有没有矢量化的方法来做到这一点,例如使用einsum或tensordot?

python sum vectorization

1
推荐指数
1
解决办法
159
查看次数

找出一个索引与剩余索引之间的差异

我有一个矢量:

A = [1 2 3 4 5];
Run Code Online (Sandbox Code Playgroud)

我想找到A(1)和其余指数之间的区别:

A(1) = 1; 1 - A = [0 -1 -2 -3 -4]
Run Code Online (Sandbox Code Playgroud)

然后我想继续A(2),直到矢量结束.所以我在彼此的所有点之间存在差异.

目前我使用循环,但它非常耗时.如何使用矢量化技术来提高性能呢?

我正在使用MATLAB 2016a

performance matlab loops vectorization

1
推荐指数
1
解决办法
53
查看次数

用于数据帧中多列操作的矢量化解决方案

我可能会有一个较大的数据框,其中包含以下第一行:

   BUCHDAT     y  y1   y2    y3     y4    y5     y6     y7
7 2017-02-26 577 30.0 622.0 1785.0 2633.0 422.0 10497.0 364.0 
Run Code Online (Sandbox Code Playgroud)

现在我想用公式替换“ y”至“ y7”列:

df['y'] = df['y'] - df['y1']

是否有矢量化解决方案?因此,我想将此公式应用于每一列,对于下一列,公式应为:

df['y1'] = df['y1']- df['y2']

你有什么想法吗?

python optimization vectorization dataframe pandas

1
推荐指数
2
解决办法
51
查看次数