how to split data

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

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by