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

2 visualizzazioni (ultimi 30 giorni)
Hi,
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

Risposte (1)

Turlough Hughes
Turlough Hughes il 12 Ott 2020
Modificato: Turlough Hughes il 12 Ott 2020
There is a function made specifically for this called padarray, try the following example:
A = rand(2000);
B = padarray(A,[1000 1000]);
  2 Commenti
Alberto Paniate
Alberto Paniate il 12 Ott 2020
So if I have my matrix, A 2000x2000 and I create B=zeros(4000,4000) an I want to put at the center of B, I have to write C= padarray(A, [1000 100])?
Turlough Hughes
Turlough Hughes il 12 Ott 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.

Accedi per commentare.

Categorie

Scopri di più su Shifting and Sorting Matrices in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by