Creating two vectors from one.

2 ビュー (過去 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 ExchangeMatrix Indexing についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by