在MATLAB中向量化代码

亚历克斯

如何在MATLAB中向量化此代码?如果可能的话,我希望矩阵B是一个稀疏矩阵。

%% Y is a matrix l*n
%% X is a matrix k*n
B = [];
for i=1:l
    for j=1:n
        temp1 = zeros(1,n*l);
        temp1((i-1)*n+j) = -1;
        temp2 = zeros(1,l*k);
        temp2((i-1)*k+1:i*k) = (-Y(i,j)).*(X(:,j)');
        B = [B;[temp1,temp2]];
    end
end

我不知道如何将这段代码向量化,请帮忙!谢谢!

迪卡卡

利用bsxfun进行元素乘法的屏蔽和矢量化计算,这是一种矢量化方法-

%// Create left part of the output that is basically an identity matrix
parte1 = -eye(n*l);

%// Setup right part of output
parte2 = zeros(n*l,l*k);

%// Mask to set elements from the calculations of (-Y(i,j)).*(X(:,j)')
M = bsxfun(@eq,reshape(repmat(1:l,n,1),[],1),reshape(repmat(1:l,k,1),1,[]));
%// OR concisely : M = kron(eye(l),ones(n,k))==1

%// Perform vectorized calculations of (-Y(i,j)).*(X(:,j)') and set those
%// into second part at masked places
parte2(M) = -bsxfun(@times,permute(X,[2,1,3]),permute(Y,[2,3,1]));

%// Finally concatenate those parts for final output
out = [parte1,parte2];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Matlab中的向量化求解

来自分类Dev

Matlab类中的向量化

来自分类Dev

在Matlab中向量化DisparityMap

来自分类Dev

Matlab类中的向量化

来自分类Dev

在Matlab中向量化DisparityMap

来自分类Dev

Matlab中的向量化循环

来自分类Dev

向量化倍频程/ matlab代码

来自分类Dev

在 Matlab 中使用 xor 向量化代码

来自分类Dev

如何使用 mvnpdf 向量化 Matlab 代码?

来自分类Dev

Matlab中的向量化范围检查

来自分类Dev

从Matlab中的struct向量化数据

来自分类Dev

在MATLAB中向量化矩阵的加权和

来自分类Dev

Matlab中循环和向量化的比较

来自分类Dev

在Matlab中向量化double for循环

来自分类Dev

在Matlab中向量化数组索引/子集

来自分类Dev

从Matlab中的struct向量化数据

来自分类Dev

Matlab中循环和向量化的比较

来自分类Dev

如何在Matlab中向量化循环?

来自分类Dev

在Matlab中向量化而不是嵌套循环

来自分类Dev

在matlab中向量化余弦相似度

来自分类Dev

Matlab中的向量化积分函数

来自分类Dev

Matlab中的向量化矩阵和向量运算

来自分类Dev

有什么办法可以向量化这个Matlab代码吗?

来自分类Dev

将向量化的Matlab代码传输到python,numpy

来自分类Dev

有什么办法可以向量化这个Matlab代码吗?

来自分类Dev

向量化代码-如何减少MATLAB计算时间

来自分类Dev

向量化-Matlab

来自分类Dev

向量化MATLAB循环

来自分类Dev

有没有一种方法可以在matlab / octave中向量化此代码段?