Cody

# Problem 2585. How to reverse spdiags ?

Solution 2080901

Submitted on 5 Jan 2020
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
x = spdiags([1 2 3;4 5 6;7 8 9]); assert(isequal(spdiags(inv_spdiags(x)),x))

2   Fail
b = spdiags(eye(10)); assert(isequal(spdiags(inv_spdiags(b)),b))

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in inv_spdiags (line 3) C(3-k,:)=diag(B,k)'; Error in Test2 (line 2) assert(isequal(spdiags(inv_spdiags(b)),b))

3   Fail
x = spdiags([1 2 3;4 5 6]); assert(isequal(spdiags(inv_spdiags(x)),x))

Assertion failed.

4   Fail
y = spdiags(magic(9)); assert(isequal(spdiags(inv_spdiags(y)),y))

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in inv_spdiags (line 3) C(3-k,:)=diag(B,k)'; Error in Test4 (line 2) assert(isequal(spdiags(inv_spdiags(y)),y))

5   Fail
x = spdiags(magic(5)); assert(isequal(spdiags(inv_spdiags(x)),x))

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in inv_spdiags (line 3) C(3-k,:)=diag(B,k)'; Error in Test5 (line 2) assert(isequal(spdiags(inv_spdiags(x)),x))

6   Fail
z = spdiags(ones(10)); assert(isequal(spdiags(inv_spdiags(z)),z))

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in inv_spdiags (line 3) C(3-k,:)=diag(B,k)'; Error in Test6 (line 2) assert(isequal(spdiags(inv_spdiags(z)),z))

7   Fail
x = spdiags(randi(10,5)); assert(isequal(spdiags(inv_spdiags(x)),x))

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in inv_spdiags (line 3) C(3-k,:)=diag(B,k)'; Error in Test7 (line 2) assert(isequal(spdiags(inv_spdiags(x)),x))

8   Fail
x = spdiags(randi(5,[3 2])); assert(isequal(spdiags(inv_spdiags(x)),x))

Assertion failed.

9   Fail
a = spdiags(zeros(5)); assert(isequal(spdiags(inv_spdiags(a)),a))

Output argument "C" (and maybe others) not assigned during call to "inv_spdiags". Error in Test9 (line 2) assert(isequal(spdiags(inv_spdiags(a)),a))