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;

 采纳的回答

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.

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Resizing and Reshaping Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by