How do I select some data from a matrix?

1 view (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)

Categories

Find more on Tables in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!