I need to create a function that projects vector b onto vector a

I need to create a function that projects vector b onto vector a. I know that all elements of b is 1, and that it has the same dimensions as a. My function needs to work for all dimensions. How do i do this??? Especially the part of defining b
So far i have written this
function projection = computeProjection(a)
projection = (dot(a,b)/norm(a))*a;

 Akzeptierte Antwort

John D'Errico
John D'Errico am 5 Aug. 2017
Bearbeitet: John D'Errico am 5 Aug. 2017
All you are missing is that b is a vector of ones, of the same size as a?
b = ones(size(a));
At least, that is all you think you need. In fact, you need to modify the formula slightly, to be:
projection = (dot(a,b)/norm(a)^2)*a;
You needed another factor of norm(a) in there to make it work.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by