Repeat row of a matrix
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
dan berkowitz
el 22 de Oct. de 2017
Comentada: Cedric
el 23 de Oct. de 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
0 comentarios
Respuesta aceptada
Cedric
el 22 de Oct. de 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 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!