2011-09-16 18 views
0

私はsame IDsの2つの行列を持っています。 mat1にはIDごとに複数の行があり、mat2にはIDごとにONLY 1行があります。行列はあらかじめソートされています。行列を別の行列にRepmatする - MATLAB

% COL1 -> ID 
mat1 = [ 20 2008 0.11 ; 20 2010 0.22 ; 30 2001 0.99 ; 40 2011 0.11 ; 40 2011 0.22 ; 40 2012 0.11 ] ; 
mat2 = [ 20 0.88 ; 30 0.11 ; 40 0.99 ] ; 

mat2のIDは、mat1の対応する行数に応じて繰り返す必要があります。

mat2 = [ 20 0.88 ; 20 0.88 ; 30 0.11 ; 40 0.99 ; 40 0.99 ; 40 0.99 ] ; 

答えを提案できますか?私自身では、accmarrayなどを使ってIDごとの行数を取得し、repmat mat2になる可能性があると考えました。ありがとう。

答えて

1

これを試してみてください。このことができます

[b,m,n] = unique(mat1(:,1)); 
mat3 = mat2(n,:) 

希望...

+0

感謝を!わかりやすく...なぜ私はaccumarrayについて考えましたか? – Maddy