How to Pad an Array with extra zeros

16 visualizaciones (últimos 30 días)
Shaquille Powell
Shaquille Powell el 23 de Oct. de 2017
Editada: Stephen23 el 23 de Oct. de 2017
Say I have an array, and I use to reshape function to divide it into equal sections. In the case that it cannot be divided into equal sections, how do I add zeros at the end to compensate? Say A=[1 8 1 9 1 4 1 5 0 4], and I want to divide it into sections of 4. 4 is not a set value.
  1 comentario
Shaquille Powell
Shaquille Powell el 23 de Oct. de 2017
I'm new to this so I keep asking confusing questions. I want the end up with B=[1 8 1 8,1 4 1 5, 0 4 0 0]

Iniciar sesión para comentar.

Respuesta aceptada

Stephen23
Stephen23 el 23 de Oct. de 2017
Editada: Stephen23 el 23 de Oct. de 2017
Here are some simple methods that automatically adjusts to the length of the vector:
Method One: pad to end of vector:
>> A = [1,8,1,9,1,4,1,5,0,4];
>> N = 4;
>> B = A;
>> B(end+1:N*ceil(numel(B)/N)) = 0
B =
1 8 1 9 1 4 1 5 0 4 0 0
Method Two: preallocate a vector of the right size:
>> A = [1,8,1,9,1,4,1,5,0,4];
>> N = 4;
>> B = zeros(1,N*ceil(numel(A)/N));
>> B(1:numel(A)) = A
B =
1 8 1 9 1 4 1 5 0 4 0 0

Más respuestas (2)

Andrei Bobrov
Andrei Bobrov el 23 de Oct. de 2017
Editada: Andrei Bobrov el 23 de Oct. de 2017
A=[1 8 1 9 1 4 1 5 0 4];
n = 4;
B = reshape([A(:);zeros(mod(-numel(A),n),1)],n,[])';

KSSV
KSSV el 23 de Oct. de 2017
Editada: KSSV el 23 de Oct. de 2017
doc padarray
B = [A zeros(1,2)]

Categorías

Más información sobre Operators and Elementary Operations en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by