MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

0

Repeat row of a matrix

dan berkowitz さんによって質問されました 2017 年 10 月 22 日
最新アクティビティ Cedric Wannaz
さんによって コメントされました 2017 年 10 月 23 日
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 件のコメント

サインイン to comment.

タグ

1 件の回答

Cedric Wannaz
回答者: Cedric Wannaz
2017 年 10 月 22 日
 採用された回答

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 件のコメント

dan berkowitz 2017 年 10 月 23 日
thank you!
Cedric Wannaz
2017 年 10 月 23 日
My pleasure!

サインイン to comment.



Translated by