我需要对表格进行大量评估
X(:,i)' * A * X(:,i) i = 1...n
其中 X(:,i) 是一个向量,A 是一个对称矩阵。从表面上看,我可以循环执行此操作
for i=1:n
z(i) = X(:,i)' * A * X(:,i)
end
这很慢,或者将其矢量化为
z = diag(X' * A * X)
当 X 有很多列时,这会不可接受地浪费 RAM。目前我正在妥协
Y = A * X
for i=1:n
z(i) = Y(:,i)' * X(:,i)
end
这更快/更轻,但似乎仍然不能令人满意。
我希望可能有一些 matlab/scilab 习语或技巧来更有效地实现这一结果?