mat.prod <- function(A, B) {
   # convertiamo eventuali vettori in matrici 1D 
   A = as.matrix(A)
   B = as.matrix(B)
   # controlliamo che le dimensioni siano 'consistenti'
   if(dim(A)[2] != dim(B)[1]) {
      cat(sprintf("Il nr di righe di B deve essere uguale al nr di col di A\n"))
      return(NULL)	  
   }
   nr = dim(A)[1]
   nc = dim(B)[2]
   nj = dim(A)[2]
   P = matrix( rep(0, nr*nc), c(nr, nc) )
   for(i in 1:nr) {
     for(k in 1:nc){
       for(j in 1:nj) {
         P[i, k] = P[i,k] + A[i,j]*B[j,k]
       }
     }
   }
   return(P)
}
