This is a post about "how to write neat, efficient, readable MATLAB code". I get the job done by doing work-arounds, but I would rather not do those.
Assume that a, b are two vectors of unknown orientation, and we want to compute something similar to the dot-product.
It might look something like this:
function y = myfunc(a,b)//make sure that vectors are oriented the same wayy = a(:) .* b(:);
But what if I need to calculate y for elements 2:N? We might do something like this, but I think it clutters the code:
function y = myfunc(a,b)a = a(2:end)b = b(2:end)y = a(:) .* b(:);
I am wishing for a functional form of the colon operator that might look something like this:
function y = myfunc(a,b)y = colon(a(2:end)) .* colon(b(2:end));
Best Answer