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;

 Respuesta aceptada

John D'Errico
John D'Errico el 5 de Ag. de 2017
Editada: John D'Errico el 5 de Ag. de 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.

Más respuestas (0)

Categorías

Preguntada:

el 5 de Ag. de 2017

Editada:

el 5 de Ag. de 2017

Community Treasure Hunt

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

Start Hunting!

Translated by