Creating two vectors from one.

2 vues (au cours des 30 derniers jours)
Giuseppe
Giuseppe le 26 Mar 2014
Commenté : Giuseppe le 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,

Réponse acceptée

Mischa Kim
Mischa Kim le 26 Mar 2014
Modifié(e) : Mischa Kim le 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 commentaire
Giuseppe
Giuseppe le 26 Mar 2014
Modifié(e) : Giuseppe le 26 Mar 2014
Thank you Mischa. You are a legend!

Connectez-vous pour commenter.

Plus de réponses (1)

Chandrasekhar
Chandrasekhar le 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 commentaire
Giuseppe
Giuseppe le 26 Mar 2014
Thanks for the contribution. I really appreciate it.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by