kiotoqq 发表于 2013-6-12 05:12 
太谢谢啦!再问下,如果有这个条件:
这样应该就可以了吧。但是这个程序有个问题,就是最后输出的虽然看上去是一个矩阵,但是用is.matrix()检验的时候是FALSE,说明不是矩阵。修改了很久也没修改好,我也不知道问题出在哪里。最后我想,如果要调用的话,那就用as.matrix()转换一下吧。
- 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
- }
- }
复制代码