How to simplify matrix expression
4 views (last 30 days)
Show older comments
I have following matrix expression:
y_ = zeros(5000,10);
y_(1:500,10) = 1;
y_(501:1000,1) = 1;
y_(1001:1500,2) = 1;
y_(1501:2000,3) = 1;
y_(2001:2500,4) = 1;
y_(2501:3000,5) = 1;
y_(3001:3500,6) = 1;
y_(3501:4000,7) = 1;
y_(4001:4500,8) = 1;
y_(4501:5000,9) = 1;
y = y_;
How do I simplify this code under 2 or 3 lines? At the end I just want to have a matrix Y containing 5000x10 elements.
2 Comments
Answers (1)
John D'Errico
on 21 Jun 2016
Edited: John D'Errico
on 21 Jun 2016
Will one line suffice?
y = sparse((1:5000)',reshape(repmat([10,1:9]',1,500)',[5000,1]),1,5000,10);
See Also
Categories
Find more on Sparse Matrices 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!