MATLAB Answers

Append rows at the end of Matrix

6,210 views (last 30 days)
Trushit
Trushit on 27 Jan 2014
Edited: user924 on 26 Jan 2021
Hi,
a = [1 2 3 ; 4 5 6; 7 8 9]; --> 3x3 matrix
I want to insert at the end number of raws with same elements such as [5 5 5] and make the matrix 10 x 3 i.e. I want to insert 7 more raws with [5 5 5]. Please explain.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 27 Jan 2014
Edited: Azzi Abdelmalek on 27 Jan 2014
a = [1 2 3 ; 4 5 6; 7 8 9];
b=[5 5 5]
c=[a;b]% add one row
c=[a;repmat(b,7,1)] %add 7rows
  5 Comments
user924
user924 on 26 Jan 2021
Perhaps try creating a 5x5 matrix of zeros and using a for loop to overwrite the elements that you want to be non-zero.
a =
0 0 0 0 0
0 0 0 0 0
0 0 1 2 3
0 0 4 5 6
0 0 7 8 9
a = zeros(5);
b = [1:9];
width = 3;
[m,n] = size(a);
for row = m:-1:1
for col = n:-1:n-2
if size(b) > 0
a(row, col) = b(end);
b = b(1:end-1);
end
end
end
a

Sign in to comment.

More Answers (2)

Amit
Amit on 27 Jan 2014
A = [1 2 3;4 5 6;7 8 9];
A = [A; ones(7,3)*5];
  1 Comment
Trushit
Trushit on 30 Jan 2014
Thank you. It's short and speedy.

Sign in to comment.


Michael Hawks
Michael Hawks on 2 May 2019
Another method:
a = [1 2 3 ; 4 5 6; 7 8 9];
b=[5 5 5];
a( end+1, : ) = b;
or
a( :, end+1 ) = b';

Community Treasure Hunt

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

Start Hunting!