Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Given a square matrix M of odd dimensions (3 by 3.5 by 5 or larger in general):

ID: 3803770 • Letter: G

Question

Given a square matrix M of odd dimensions (3 by 3.5 by 5 or larger in general): Write a MATLAB function [centerdiamond] = centerdiamond(M) to make zero the elements of the matrix as shown in the example. The rest of the entries in the matrix should remain unchanged. You should preserve the original matrix. Use any method. Your code should work in general with any square matrix of odd dimensions. 1 -3 2 4 2 5 7 8 9 5 3 2 4 6 3 6 8 2 1 3 3 3 3 3 3 Becomes: 1 -3 0 4 2 5 0 8 0 5 0 2 4 6 0 6 0 2 0 3 3 3 0 3 3 1 -3 2 4 2 5 3 5 7 8 9 5 3 2 3 2 4 6 3 4 1 6 8 2 1 3 5 4 3 3 3 3 3 6 3 2 2 2 2 2 2 7 3 5 6 1 4 6 2 Becomes: 1 -3 2 0 2 5 3 5 7 0 9 0 3 2 3 0 4 6 3 0 1 0 8 2 1 3 5 0 3 0 3 3 3 0 3 2 2 0 2 0 2 7 3 5 6 0 4 6 2

Explanation / Answer

function [centerDiamond] = centerDiamond(M)
[rows cols] = size(M);
upRow = 1;
downRow = rows;
leftCol = idivide(rows, 2, 'ceil');
rightCol = idivide(rows, 2, 'ceil');
centerDiamond = M;
while upRow <= downRow
centerDiamond(upRow, leftCol) = 0;
centerDiamond(upRow, rightCol) = 0;
centerDiamond(downRow, leftCol) = 0;
centerDiamond(downRow, rightCol) = 0;
upRow = upRow + 1;
downRow = downRow - 1;
leftCol = leftCol - 1;
rightCol = rightCol + 1;
end