I have to use a loop (while or for) to return the result of hadamard
product. now it returns a matrix, but when I use is.matrix() to check, it
returns FALSE, whats wrong?

Matrix.mul <- function(A, B)
{
    while(is.matrix(A) == FALSE | is.matrix(B) == FALSE )
         {print("error")
          break}
    while(is.matrix(A) == T & is.matrix(B) == T)
         {
          n <- dim(A)[1]; m <- dim(A)[2];
          p <- dim(B)[1]; q <- dim(B)[2];
          while(m == p)
               {
                C <- matrix(0, nrow = n , ncol = q)
                for(s in 1:n)
                   {
                    for(t in 1:q)
                       {
                        c <- array(0, dim = m )
                        for(k in 1:m)
                           {
                            c[k] <- A[s,k] * B[k, t]

                            }
                        C[s, t] <- sum(c)
                       }
                   }
                print(C)
                break
                }
          while(m != p)
               {
                print("error")
                break
                }
          break
          }
}

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to