Problem 2585. How to reverse spdiags?
The spdiags function extracts all nonzero diagonals from the m-by-n matrix A.
So if
A = [1 2 3;4 5 6;7 8 9]
then
spdiags(A) = [7 4 1 0 0;
0 8 5 2 0;
0 0 9 6 3]
But if I give you spdiags(A), can you give me A ?
Solution Stats
Problem Comments
-
1 Comment
Paul Berglund
on 5 Oct 2014
% this problem is not guaranteed solvable
isequal(spdiags([eye(5) zeros(5)]),spdiags(eye(5)))
Solution Comments
Show commentsGroup

Operations
- 32 Problems
- 14 Finishers
- modular arithmetic
- Sum the 'edge' values of a matrix
- Subtract integers and add doubles
- Multiplication
- Let's get back to school, and create multiplication tables
- Make an N-dimensional Multiplication Table
- Mmm! Multi-dimensional Matrix Multiplication
- Accurate Division
- Number of even divisors of a given number
- Raise a polynomial to a power
- Array ex-OR
- Airline Ticket Mod7 Checksum
- Determinant without using det()
- Calculate the hypotenuse of a right triangle without using ^ and sqrt ()
- Calculate sin(x) without sin(x)
- Calculate cosine without cos(x)
- Negative without '-'
- calculate PI without using pi function
- Church Encoding
- Concatenated roots
- Product of Each Column
- Perl 1: push
- Vector push
- Vector pop
- Shuffle
- Please check the last row
- Converting Decimal to Binary
- Temperature Conversion Utility
- Temperature Conversion Utility (Strings)
- Calculate the sum of two polynomials
- Moving average (variable kernel length)
- Weighted average
Problem Recent Solvers38
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!