MATLAB Answers

# Repeat row of a matrix

조회 수: 8(최근 30일)
dan berkowitz 22 Oct 2017
댓글: Cedric Wannaz 23 Oct 2017
Hi,
I have a 3x1 array, a = [1 2 3]', and B, a 3x2 matrix.
How can I create C, a 6x2 matrix, whose first row is the same as B and repeated once [a(1)], the second row is the second row of B repeated twice [a(2)], and the third row is the third row of B repeated three times [(a(3)]? I'm trying to use the repelem function but am a bit stuck...Do I have to loop to do this, or is there another way?
Any help would be appreciated. Thx in advance,
DB

댓글을 달려면 로그인하십시오.

### 채택된 답변

Cedric Wannaz 22 Oct 2017
Here is one way to achieve it. If
>> a = [1;2;3] ;
>> B = randi( 10, 3, 2 )
B =
3 10
6 2
10 10
Then
>> C = arrayfun( @(k)repelem(B(k,:),a(k),1), 1:numel(a), 'UniformOutput', false ) ;
>> C = vertcat( C{:} )
C =
3 10
6 2
6 2
10 10
10 10
10 10
##### 댓글 수: 2표시숨기기 이전 댓글 수: 1
Cedric Wannaz 23 Oct 2017
My pleasure!

댓글을 달려면 로그인하십시오.

### Community Treasure Hunt

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

Start Hunting!