How to construct this vector without loop?
Show older comments
Hi, everyone:
I was wondering, is it possible to construct following vector without for loop?
A=[1 2 3 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9 .....]
or equivalently A=[1:(3*1), 1:(3*2), 1:(3*3), 1:(3*4), ...., 1:(3*n)]
Many thanks!
Accepted Answer
More Answers (2)
Azzi Abdelmalek
on 23 Oct 2013
Edited: Azzi Abdelmalek
on 23 Oct 2013
A=[1 2 3 1 2 3 4 5 6 1 2 3 4 5 6 7 8 9]
cell2mat(arrayfun(@(x) 1:3*x,A,'un',0))
Vivek Selvam
on 23 Oct 2013
Edited: Vivek Selvam
on 23 Oct 2013
vec = 3*(1:n);
A = cell2mat(arrayfun(@(x) 1:x,vec,'UniformOutput',0));
or
vec = 1:n;
A = cell2mat(arrayfun(@(x) 1:3*x,vec,'UniformOutput',0));
Categories
Find more on Programming in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!