Put elements into corresponding locations of upper triangular matrix
Show older comments
Hi all,
Imagine I have a vector:
inpt = (1:6)';
Now I'd like to put elements of inpt in the upper triangular part of a 3 by 3 matrix otpt, so I have:
otpt =
1 2 4
0 3 5
0 0 6
What's the best way to do it? Thanks!
1 Comment
Jan
on 26 Jul 2017
Is this a homework question? If so, please mention it, because then a different type of answers is required.
Accepted Answer
More Answers (1)
Roger Stafford
on 26 Jul 2017
Let vector ‘inpt’ have size = n*(n+1)/2,1.
otpt = zeros(n);
otpt(triu(ones(n),0)==1) = inpt;
3 Comments
Prabhjot Dhami
on 23 Apr 2020
Thanks for this!
warnerchang
on 4 Jun 2021
Brilliant! it's actually the sum formula for arithmetic sequence! very helpful for understanding.
KUMAR TRIPATHY
on 3 Oct 2021
Absolutely brilliant, concise and crisp!
Categories
Find more on Surrogate Optimization 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!