Creating certain amount of new rows from each row in a matrix?

1 view (last 30 days)
How can I create certain amount of rows from each row? For example
A=[a b c d
Then I want to create n new rows from the first row, and m new rows from the second and third row.
e f g h
i j k l]
from [a b c d] => Let n=2 =>
New rows [x y z k
t y j m]

Accepted Answer

Walter Roberson
Walter Roberson on 18 May 2016
[repmat(A(1,:), n, 1);
repmat(A(2:end,:), m, 1)]
  2 Comments
Walter Roberson
Walter Roberson on 18 May 2016
A1_n = repmat(A(1,:), n, 1);
A2_m = repmat(A(2,:), m, 1);
A3_m = repmat(A(3,:), m, 1);
Acol = size(A,2);
result = [A1_n + repmat((rand(n,1) * 2 - 1) / intensity, 1, Acol) .* A1_n;
A2_m + repmat(rand(m, 1) * 2 - 1, 1, Acol) .* A2_m;
A3_m + repmat(rand(m, 1) * 2 - 1, 1, Acol) .* A3_m];

Sign in to comment.

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!