How do I select some data from a matrix?

3 views (last 30 days)
I have for example this matrix
A=[2 0.9;
2 0.8;
2 1.0;
2 0.8;
3 0.3;
3 0.7;
3 0.8;
3 0.7]
I want to have just the first two rows of A in each repetition. The "repetition" is in column 1 of A. Here, the repetition is 2 and 3. So B equals:
B=[2 0.9;
2 0.8;
3 0.3;
3 0.7]
Thanks for help.
  2 Comments
Azzi Abdelmalek
Azzi Abdelmalek on 28 Mar 2016
this is not clear, what kind of repetition? only in in first column?
Rita
Rita on 29 Mar 2016
Edited: Image Analyst on 29 Mar 2016
Sorry about that.
I mean column 1 = [2 2 2 3 3 3 3] are repetitions. In my real matrix I have 500 times of data from 2 to 20 and I want to create an matrix with the first 100 times of 2 ,3,4,...20 for the first column and the corresponding values for each row.
I am looking for a function which can make B like this:
B=[A(1:2,:);A(5:7,:)]
I need to extend this for my real data.
Thanks

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 28 Mar 2016
[~,ii]=unique(A(:,1),'stable');
jj=sort([ii,ii+1]);
out=A(jj,:)

More Answers (0)

Community Treasure Hunt

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

Start Hunting!