Increase matrix size, with the first matrix a the center of the new matrix

1 view (last 30 days)
suppose to have a matrix (2000x2000) now i want to copy it in a bigger matrix (4000x4000 for example), with the original matrix at the center of the second matrix, and the other values set to 0. How can I do?
I have done it with for loop, but it is slow

Answers (1)

Turlough Hughes
Turlough Hughes on 12 Oct 2020
Edited: Turlough Hughes on 12 Oct 2020
There is a function made specifically for this called padarray, try the following example:
A = rand(2000);
B = padarray(A,[1000 1000]);
Turlough Hughes
Turlough Hughes on 12 Oct 2020
Creating an array B=zeros(4000) is unnecessary because you are not using it in the next step. You can simply write:
C = padarray(A,[1000 1000]);
to get what you are looking for.

Sign in to comment.


Community Treasure Hunt

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

Start Hunting!