how to split data

43 Ansichten (letzte 30 Tage)
Tino
Tino am 4 Jun. 2019
Beantwortet: Star Strider am 4 Jun. 2019
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 Kommentare
madhan ravi
madhan ravi am 4 Jun. 2019
What if it has 11 elements then ??
Tino
Tino am 4 Jun. 2019
you ignore the last element

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Stephen23
Stephen23 am 4 Jun. 2019
Bearbeitet: Stephen23 am 4 Jun. 2019
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 am 4 Jun. 2019
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.

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by