create a matrix that keeps only the sequential numbers

Hi! I need to create a matrix that keeps only the sequential numbers in the first column (and keep the corresponding number in the second column) and delete everything else. Here is an example:

3 个评论

What should happen if there are two or more series of sequential numbers?
What happens if the 1st column consists of two sequential numbers, like: [1 2 3 4 7 8 9 10]' ?
@Stephen23 If there are two or more sets of sequential numbers, I would like to keep all sequences of at least 2 sequential numbers. So if the first column is: [77; 78; 79; 81; 83; 84; 94] it would become: [77; 78; 79; 83; 84]. Or if the first column is: [77; 78; 79; 81; 82; 83; 84] it would remain the same.
@Akira Agata In the case you wrote, the column would remain the same.

请先登录,再进行评论。

 采纳的回答

S = load('CountArray_A_zoom_select.mat');
A = S.CountArray_A_zoom_select
A = 9×2
77 769 78 513 79 412 80 331 81 297 82 182 83 116 84 76 94 64
X = diff(A(:,1))==1;
Y = [X;0]|[0;X];
B = A(Y,:)
B = 8×2
77 769 78 513 79 412 80 331 81 297 82 182 83 116 84 76

更多回答(0 个)

类别

在 帮助中心 和 File Exchange 中查找有关 Matrix Indexing 的更多信息

产品

版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by