Creating two vectors from one.

1 回表示 (過去 30 日間)
Giuseppe
Giuseppe 2014 年 3 月 26 日
コメント済み: Giuseppe 2014 年 3 月 26 日
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,

採用された回答

Mischa Kim
Mischa Kim 2014 年 3 月 26 日
編集済み: Mischa Kim 2014 年 3 月 26 日
Giuseppe, use
xr = x(1:end-1,1).*x(2:end,2)
xr =
-16
6
4
and equivalent for the other calculation.
  1 件のコメント
Giuseppe
Giuseppe 2014 年 3 月 26 日
編集済み: Giuseppe 2014 年 3 月 26 日
Thank you Mischa. You are a legend!

サインインしてコメントする。

その他の回答 (1 件)

Chandrasekhar
Chandrasekhar 2014 年 3 月 26 日
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 件のコメント
Giuseppe
Giuseppe 2014 年 3 月 26 日
Thanks for the contribution. I really appreciate it.

サインインしてコメントする。

カテゴリ

Help Center および File Exchange2-D and 3-D Plots についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by