How to reshape and repeat at the same time.
2 views (last 30 days)
Show older comments
Bahaa Algebory
on 2 Jan 2017
Commented: Bahaa Algebory
on 5 Jan 2017
Hi guys, I have the following data
data= [1 3 7 9 2 5]
and I want the data to be as a matrix (2*6)
newdata=1 1 7 7 2 2
3 3 9 9 5 5
Please help me, and thanks in advance.
0 Comments
Accepted Answer
Walter Roberson
on 2 Jan 2017
num_rows = 2;
num_copies = 2;
new_data = kron(reshape(data, num_rows, []), ones(1, num_copies));
Or less verbosely,
new_data = kron(reshape(data,2,[]),ones(1,2));
5 Comments
Walter Roberson
on 5 Jan 2017
finaldata = reshape( permute(reshape(new_data, 2, 2, []), [2 1 3]), 1, [] );
More Answers (1)
Roger Stafford
on 2 Jan 2017
newdata = reshape(repmat(reshape(data,2,[]),2,1),2,[]);
3 Comments
Roger Stafford
on 5 Jan 2017
It is much easier to get ‘finaldata’ directly from ‘data’:
finaldata = reshape(repmat(data,2,1),1,[]);
See Also
Categories
Find more on Cell Arrays 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!