Replicating a vector while summing an increasing value

3 vues (au cours des 30 derniers jours)
Jose Luis
Jose Luis le 19 Sep 2015
Commenté : Star Strider le 19 Sep 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.

Réponse acceptée

Star Strider
Star Strider le 19 Sep 2015
This works:
a = [ 7 8 9 7 8 9];
n = 4;
b = bsxfun(@plus, a, [0:10:n*10]');
  2 commentaires
Jose Luis
Jose Luis le 19 Sep 2015
Thank you, all the answers works
Star Strider
Star Strider le 19 Sep 2015
My pleasure.

Connectez-vous pour commenter.

Plus de réponses (2)

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

Image Analyst
Image Analyst le 19 Sep 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])

Catégories

En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by