how to clip column into vectors with the rules I set

1 visualización (últimos 30 días)
ZHEN XU
ZHEN XU el 18 de Sept. de 2020
Editada: Stephen23 el 24 de Sept. de 2020
I wanna clip the 2nd column while the first cloumn increased by 10 each time. Note: the output vector length of 2nd column between 10 and 20 could be different. For example, the matrix
A =
1.0000 0.3000
5.2000 0.8000
9.2000 95.0000
17.8500 21.0000
19.5600 78.0000
20.5800 9.2300
25.0000 8.0000
28.0000 9.6500
29.1200 45.0000
Output:
B1 =
0.3000
0.8000
95.0000
B2 =
21
78
B3 =
8.0000
9.6500
45.0000
How should I do this? Thank you.

Respuestas (1)

Stephen23
Stephen23 el 24 de Sept. de 2020
Editada: Stephen23 el 24 de Sept. de 2020
>> [~,~,idx] = unique(floor(A(:,1)/10));
>> out = accumarray(idx,A(:,2),[],@(v){v});
>> out{1}
ans =
0.3000
0.8000
95.0000
>> out{2}
ans =
21.0000
78.0000
>> out{3}
ans =
9.2300
8.0000
9.6500
45.0000

Categorías

Más información sobre Multidimensional Arrays en Help Center y File Exchange.

Productos


Versión

R2019b

Community Treasure Hunt

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

Start Hunting!

Translated by