Replicating a vector while summing an increasing value

3 次查看(过去 30 天)
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.

采纳的回答

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

更多回答(2 个)

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

Image Analyst
Image Analyst 2015-9-19
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])

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by