MATLAB: How to assing incrementing numbers to identical values in a column

combinecountindexindexingmatchvalue

Hello to all,
my ultimate goal of this question is to find a solution for the following problem: I am searching for the index of the first and last day of a month of one year specifically. To specify my question here a design of my data :
Column 1(Year) Column 2(Month) Column 3(Data)
1990 1 .098
1990 1 .99
1990 1 .34
1990 2 .56
1990 2 .44
In this example my answer would be IndexBeginning = 1 and IndexEnding= 3 for month 1 of the year 1990 and IndexBeginning = 4 and IndexEnding= 5 for month 2 of the year 1990.
To get specific values for a month and the respective years i have already merged the two first columns. January 1990, e.g., now has the designated number 19901 and February 1995 the number 19952. Now I´m trying to index those merged numbers from 1 to 293 ( number of month of my sample) in correct order so i can easily search for every month.
I´m very grateful for any and every idea!
with Kind Regards,
A Goeh

Best Answer

M=[1990 1 .098;1990 1 .99;1990 1 .34;1990 2 .56;1990 2 .44]
[ii,jj,kk]=unique(M(:,1:2),'rows','stable')
out=[ii cell2mat(accumarray(kk,(1:numel(kk))',[],@(x) {[x(1) x(end)]}))]