how to split data

10 ビュー (過去 30 日間)
Tino
Tino 2019 年 6 月 4 日
回答済み: Star Strider 2019 年 6 月 4 日
rx = [1
3
4
5
6
7
8
9
2
6]
Please how can I divide this data above to half to get x and y
x = [ 1 3 4 5 6 ]
y = [ 7 8 9 2 6]
thanks
  2 件のコメント
madhan ravi
madhan ravi 2019 年 6 月 4 日
What if it has 11 elements then ??
Tino
Tino 2019 年 6 月 4 日
you ignore the last element

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

回答 (2 件)

Stephen23
Stephen23 2019 年 6 月 4 日
編集済み: Stephen23 2019 年 6 月 4 日
Why not just use basic MATLAB indexing?:
>> x = rx(1:5)
x =
1
3
4
5
6
>> y = rx(6:10)
y =
7
8
9
2
6
If you really want the output to be horizontal, simply add a transpose:
>> x = rx(1:5).'
x =
1 3 4 5 6

Star Strider
Star Strider 2019 年 6 月 4 日
Another option:
M = reshape(rx(1:2*fix(numel(rx)/2)), fix(numel(rx)/2), []);
x = M(:,1)'
y = M(:,2)'
This automatically discards elements at the end that result in the length of ‘rx’ not being a multiple of 2, and produces the same result if ‘rx’ is a row or column vector. It only works correctly if ‘rx’ is a vector.

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by