matlab矩阵矢量乘法,matlab – 矢量化矩阵乘法

将B重塑为2D,使用A执行矩阵乘法以减小B的第一维和A的第二维,并获得2D乘积输出.最后将产品重新塑造成所需的3D输出,就像这样 –

[m,n,p] = size(B); %// Store size parameters

C = reshape(A*reshape(B,m,[]),m,n,p)

标杆

num_iter = 100; %// Number of iterations to run benchmarks

for k = 1:50000

tic(); elapsed = toc(); %// Warm up tic/toc.

end

%// Size parameters and setup input arrays

m = 14;

n = 256;

p = 200;

A = rand(m,m);

B = rand(m,n,p);

disp('---------------- With loopy approach')

tic

for ii = 1:num_iter

C = zeros(m,n,p);

for i = 1:p

C(:, :, i) = A*B(:,:,i);

end

end

toc

disp('---------------- With vectorized approach')

tic

for ii = 1:num_iter

[m,n,p] = size(B);

Cout = reshape(A*reshape(B,m,[]),m,n,p);

end

toc

error_check = isequal(C,Cout) %// 1 means good

输出 –

---------------- With loopy approach

Elapsed time is 1.679919 seconds.

---------------- With vectorized approach

Elapsed time is 1.496923 seconds.

error_check =

1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值