我有一個矩陣給出的向量列表,其中每行是一個向量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;
你是絕對正確的,謝謝! – 2012-01-07 19:42:33