Replicating a vector while summing an increasing value

8 visualizaciones (últimos 30 días)
Jose Luis
Jose Luis el 19 de Sept. de 2015
Comentada: Star Strider el 19 de Sept. de 2015
I have this vector: a = [ 7 8 9 7 8 9]; and I would like to obtain the following vector:
b= [ 7 8 9 7 8 9; 17 18 19 17 18 19; 27 28 29 27 28 29; 37 38 39 37 38 39 ...]
I am replicating the vector and then summing 10 for each line (for n lines). I would like to do this without using loop iterations. How can I do it? Thank you so much.

Respuesta aceptada

Star Strider
Star Strider el 19 de Sept. de 2015
This works:
a = [ 7 8 9 7 8 9];
n = 4;
b = bsxfun(@plus, a, [0:10:n*10]');

Más respuestas (2)

Azzi Abdelmalek
Azzi Abdelmalek el 19 de Sept. de 2015
a = [ 7 8 9 7 8 9];
bsxfun(@plus,a,10*[1:5]')

Image Analyst
Image Analyst el 19 de Sept. de 2015
Try this:
a=[7,8,9,7,8,9]
n = 8; % Whatever you want.
firstColumn = (0:10:10*(n-1))'
b = repmat(firstColumn, [1, length(a)]) + repmat(a, [n, 1])

Categorías

Más información sobre Loops and Conditional Statements 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