Meh*_*dad 4 matlab matrix vectorization
如果我有一个矩阵A并且我想评估x' * A * x多个值x,我该如何对其进行矢量化?
(我可以做X' * A * X并采取对角线,但这显然效率低下.)
小智 8
考虑它的一种方法是你试图在矢量X和矢量之间采取一堆点积AX.Matlab有一个功能:
N = 10; % number of x's
M = 100; % length of x's
X = rand(M,N);
A = rand(M, M);
% way 1
way1 = diag(X' * A * X);
% way 2
way2 = dot(X, A*X)';
% compare
[way1 way2]
Run Code Online (Sandbox Code Playgroud)