假设在 MATLAB 中给定一个psi
长度为 的行向量P
和一个q
长度为 的行向量。这里, 。我想按以下方式组装:M
M>P
G
for j = 1:M
G(j) = q(j:min(j+P-1, M))*psi(1:min(M-j+1, P))';
end
对于较大的M
,P
这非常耗时。对于较大的 ,q
和 的大小psi
变化也很微妙j
。
例如:如果
M = 10;
P = 3;
psi = [1,2,3];
q = [4,7,9,3,1,5,3,2,2,6];
,那么G = [45, 34, 18, 20, 20, 17, 13, 24, 14, 6]
如果它是用上面的for循环生成的。
我无法将其矢量化,这也是由于 j 移动所致。当然,可以将其写为矩阵向量乘法,作为psi
向量,但组装正确的矩阵对我来说似乎同样昂贵。
我感谢任何形式的帮助。