У меня есть список векторов, заданных матрицей, где каждая строка представляет собой вектор x_i. Теперь я хочу сделать следующую матрицу
M = sum_i c_i * (x_i * x_i '- E (x_i * x_i'))
где c_i - это число, а E (x_i * x_i ') = sum_i x_i * x_i' / n, n - количество строк.
Один плохой код для этого -
x = rand(50,10000);
c = rand(10000,1);
M = zeros(50,50);
Y = zeros(50,50);
for i=1:size(x,2)
M = M + x(:,i)*x(:,i)';
end;
M = M/size(x,2);
for i=1:size(x,2)
Y = Y + c(i)*(x(:,i)*x(:,i)' - M);
end;