В линейной алгебре мы можем спроецировать вектор v на подпространство U, взяв ортонормированный базис b(1), b(2), b(3),... b(n) этого подпространства и вычислив сумму скалярные произведения b и v(i), умноженные на вектор v(i), т.е. (v,b(i))*b(i), суммированные по i.
Предположим, что мы сохранили базисные векторы в матрице B так, что ее строки являются векторами b(1), b(2), ..., b(n).
Я нашел способ вычислить это с помощью цикла for:
proj = 0
for i=1:n
proj = proj + (B(i,:)*v)*(B(i,:)');
end
Есть ли векторизованная версия этой процедуры?