how rearrange data in a matrix?
Show older comments
I have a data as:
data=[1 2 3 4 5 6 7 8];
I need a new data matrix (4 x 8),like this:
new_data =[ 1 2 0 0 0 0 0 0
0 0 3 4 0 0 0 0
0 0 0 0 5 6 0 0
0 0 0 0 0 0 7 8 ]
How to do it using a FOR loop ? Any help?
Accepted Answer
More Answers (1)
Andrei Bobrov
on 19 Oct 2013
Edited: Andrei Bobrov
on 20 Oct 2013
a = num2cell(reshape(data,1,2,[]),[1 2])
out = blkdiag(a{:});
or
out = kron(eye(4),[1 1])*diag(data);
or
out = reshape(permute(repmat(eye(4),[1,1,2]),[1 3 2]),4,[])*diag(data);
Categories
Find more on Loops and Conditional Statements 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!