【发布时间】:2017-06-13 12:40:36
【问题描述】:
我正在尝试在 Matlab 中“矢量化”这个循环以提高计算效率
for t=1:T
j=1;
for m=1:M
for n=1:N
y(t,j) = v{m,n} + data(t,:)*b{m,n} + data(t,:)*f{m,n}*data(t,:)';
j=j+1;
end
end
end
其中v 是一个 (M x N) 标量单元。 b 是 (K x 1) 个向量的 (M x N) 单元。 f 是 (K x K) 矩阵的 (M x N) 单元格。 data 是一个 (T x K) 数组。
举个例子来说明我用来向量化同一个循环而没有二次项的代码是:
B = [reshape(cell2mat(v)',1,N*M);cell2mat(reshape(b'),1,M*N)];
X = [ones(T,1),data];
y = X*B;
谢谢!
【问题讨论】:
标签: matlab performance matrix vector vectorization