Cody

# Problem 972. Set a diagonal

Solution 2679443

Submitted on 11 Jul 2020 at 11:18
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   Fail
M = 1; v = 7; d = 0; M2 = 7; assert(isequal(setDiagonal(M,v,d),M2)); assert(isequal(setDiagonal(M,v),M2));

Not enough input arguments. Error in setDiagonal (line 2) for i=1:size(M,1)+d Error in Test1 (line 6) assert(isequal(setDiagonal(M,v),M2));

2   Fail
M = magic(5); v = 1:3; d = 2; M2 = M; M2([11,17,23]) = v; assert(isequal(setDiagonal(M,v,d),M2));

Index in position 1 is invalid. Array indices must be positive integers or logical values. Error in setDiagonal (line 3) M(i-d,i)=v(i); Error in Test2 (line 6) assert(isequal(setDiagonal(M,v,d),M2));

3   Pass
M = rand(6); v = [.2 -.2]; d = -4; M2 = M; M2([5,12]) = v; assert(isequal(setDiagonal(M,v,d),M2));

4   Fail
M = zeros(99); v = ones(1,99); d = 0; M2 = eye(99); assert(isequal(setDiagonal(M,v),M2)); assert(isequal(setDiagonal(M,v,d),M2));

Not enough input arguments. Error in setDiagonal (line 2) for i=1:size(M,1)+d Error in Test4 (line 5) assert(isequal(setDiagonal(M,v),M2));

5   Fail
M = zeros(3); v = -1:1; d = 0; M2 = diag(v); assert(isequal(setDiagonal(M,v),M2)); assert(isequal(setDiagonal(M,v,d),M2));

Not enough input arguments. Error in setDiagonal (line 2) for i=1:size(M,1)+d Error in Test5 (line 5) assert(isequal(setDiagonal(M,v),M2));