Making MATLAB Code Efficient: A 2xN Vector

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
2 replies · 3K views
Meurig
Messages
6
Reaction score
0
Hi everyone,

I'm trying to make my MATLAB code run as efficiently as possible.

II have a 2xN vector designated like so:
acc1(1,:) = A*rc(1,:);
acc1(2,:) = B*rc(2,:);

where A and B are scalars,.

Is it possible to combine these two into a single line of code?

Cheers
 
Physics news on Phys.org
If acc1 and rc have only 2 rows, then you can use: acc1=bsxfun(@times, rc, [A; B]);

If acc1 and/or rc have more than 2 rows, then: acc1(1:2, :)=bsxfun(@times, rc(1:2, :), [A; B]);

Documentation for http://www.mathworks.com/help/techdoc/ref/bsxfun.html"

Another way to do it (if your version of Matlab doesn't have bsxfun): acc1=rc.*repmat([A; B], 1, size(rc, 2));
 
Last edited by a moderator: