MATLAB: Merge datset one to many

join;mergeone-to-many

Help~
I have a panel data, for example:
A=[firm1_1970, firm1_1971,...firm1_1990, firm2_1970, firm2_1971,...firm2_1985,...,firm100_1995].
As you can see, the dataset has many years, and in each year there are observations of a number of firms.
Now I have another dataset which is the interest rate for each year, for example:
B=[r_1970, r_1971, r1972,..., r_1990].
I need to merge the two datset, but the join function seems not work because the 'Keys' (which is year) is not unique in A (the panel data). Is there any way to make such "one-to-many" merge? Many thanks.

Best Answer

A={'firm1_1970', 'firm1_1971','firm1_1990', 'firm2_1970', 'firm2_1971','firm2_1985','firm100_1995'}
B=regexp(A,'(?<=_)\d+','match')
out=cellfun(@(x) strcat('r_',x{1}),B,'un',0)