How to repeat the first number only
Show older comments
Array a is given
a =[1]
How can I add 0 to the array depending on n.
n=1 --> a=[0 1]
n=2 --> a=[0 0 1]
n=3 --> a=[0 0 0 1]
and n can be changes to any number
Accepted Answer
More Answers (1)
Image Analyst
on 7 Dec 2018
madhan's way is the best (how I'd do it), but I just want to show you a neat trick - that you can "grow" an array by simply assigning something to the last location (the location at the largest point that you want to grow it to):
a = 1; % Initial array.
n = 2; % just an example n
% a = [zeros(1,n) a] % Best way
a(n+1) = 0; % Enlarge array by appending zeros simply by assigning the last element.
a = fliplr(a) % Flipr it so that the 1 is on the right.
5 Comments
madhan ravi
on 7 Dec 2018
+1 shows many ways :-)
fyza affandi
on 7 Dec 2018
Image Analyst
on 7 Dec 2018
Glad you like it. Thanks for the vote. In that spirit, here is another one-liner way of doing it if you have the Image Processing Toolbox:
a = padarray(a, [0, n], 'pre')
It basically prepends n zeros to the beginning of array a.
Not just a neat trick, until R2015b allocating to the last element (and implicitly filling array with zeros) was faster than calling zeros:
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!