Task

Build an   identity matrix   of a size known at run-time.



An identity matrix is a square matrix of size n × n,

where the diagonal elements are all 1s (ones),

and all the other elements are all 0s (zeroes).







I

n


=


[



1


0


0


⋯


0




0


1


0


⋯


0




0


0


1


⋯


0




⋮


⋮


⋮


⋱


⋮




0


0


0


⋯


1



]




{\displaystyle I_{n}={\begin{bmatrix}1&0&0&\cdots &0\\0&1&0&\cdots &0\\0&0&1&\cdots &0\\\vdots &\vdots &\vdots &\ddots &\vdots \\0&0&0&\cdots &1\\\end{bmatrix}}}





Related tasks

   Spiral matrix
   Zig-zag matrix 
   Ulam_spiral_(for_primes)


 
Class SquareMatrix
'=================
 
  double *Cell
  sys    size
 
  method SetIdentity()
  indexbase 0
  sys e,i,j
  e=size*size
  for i=0 to <size
    cell(i*size+j)=1 : j++
  next
  end method
 
  method constructor(sys n)
  @cell=getmemory n*n*sizeof double
  size=n
  end method
 
  method destructor()
  freememory @cell
  end method
 
end class
 
new SquareMatrix M(8)
M.SetIdentity
'...
del M
 