Creating two vectors from one.

5 views (last 30 days)
Giuseppe
Giuseppe on 26 Mar 2014
Commented: Giuseppe on 26 Mar 2014
Hi I have a vector;
x = [2 4;3 -8; 1 2; 2 4;]
I need to produce two vectors like the ones to the left and right below. To get the vector on the right it is x_r = [2*-8 3*2 1*4] and same process for left(x_l) the arrows show what needs to be multiplied by what.
If the number of rows (columns will always = two) increase or decrease or the numbers change I need to account for this. Is there a way where I can do this by vectorization or will I be stuck with loops.
Thanks,

Accepted Answer

Mischa Kim
Mischa Kim on 26 Mar 2014
Edited: Mischa Kim on 26 Mar 2014
Giuseppe, use
xr = x(1:end-1,1).*x(2:end,2)
xr =
-16
6
4
and equivalent for the other calculation.
  1 Comment
Giuseppe
Giuseppe on 26 Mar 2014
Edited: Giuseppe on 26 Mar 2014
Thank you Mischa. You are a legend!

Sign in to comment.

More Answers (1)

Chandrasekhar
Chandrasekhar on 26 Mar 2014
x = [2 4;3 -8; 1 2; 2 4];
[m,n]=size(x);
for i= 1:m-1
a(i,1) = x(i,2)*x(i+1,1);
a(i,2) = x(i,1)*x(i+1,2);
end
  1 Comment
Giuseppe
Giuseppe on 26 Mar 2014
Thanks for the contribution. I really appreciate it.

Sign in to comment.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!