MATLAB Answers

0

How to group a matrix based on height

Asked by R MONTGOMERY on 17 Mar 2019
Latest activity Answered by Akira Agata
on 8 Apr 2019
EDIT __________
my apolgies for confusion
Say I have a matrix of nx1 as such:
[..... 2.59, 2.6, 2.6, 1.7 , ....... , 1.8 , 2.57 , 2.6, 2.7, 1.8.....]
(block 1) (block 2)
Is there a function that groups that first "block" of values over 2.5 as "block 1" and then the second "block" of values over 2.5 as another thing such as "block 2"
my apologies I appreciate your help

  3 Comments

There are no locations in your sample data where the difference in heights between two columns exceeds 2.5 ("values above 2.5 above/below each other") ?
We're not going to type that in. Please attach the data with the paperclip icon. Make it easy for people to help you, not hard.
Im sorry Im not very clear.
Let me ask this instead as my english skills are not so great.
Say I have a matrix of nx1 as such:
[..... 2.59, 2.6, 2.6, 1.9 , ....... , 1.9 , 2.57 , 2.6......]
Is there a function that groups that first "block" of values over 2.5 as "block 1" and then the second "block" of values over 2.5 as another thing such as "block 2"
my apologees I appreciate your help

Sign in to comment.

1 Answer

Answer by Akira Agata
on 8 Apr 2019

If you have Image Processing Toolbox, you can do this task easier by using bwlabel function. The following is a simple example.
nx1 = [1.1, 2.59, 2.6, 2.6, 1.7, 1.8, 2.57, 2.6, 2.7, 1.8];
idx = nx1 > 2.5;
group = bwlabel(idx);
The result is like:
>> group
group =
0 1 1 1 0 0 2 2 2 0

  0 Comments

Sign in to comment.