-9

这是我的代码:

Sip<-function(S,u,v){
   S<-matrix(,u,v);u<-nrow(S);v<-ncol(S);u==v;
   for(i in 1:u)
     {for(j in 1:v){
       if(S[i,j]==S[j,i]){print("Simétrica")}
       else{print("No simétrica")}
     }
   }
   S
 }
 Sip(S,2,2)

我的错误在这里if (S[i, j] == S[j, i]) {::

错误:

需要 TRUE/FALSE 的缺失值

4

1 回答 1

4

你似乎有点困惑。您正在将一个矩阵S(您未在此处发布的代码中定义)传递给您的函数。这不会导致错误,因为在您的函数内部定义了一个u填充v的矩阵(尝试查看),它会覆盖传入的值并触发错误。NAmatrix(,2,2)S

尝试这个:

Sip <- function(S,u,v){
   for(i in 1:u)
     {for(j in 1:v){
       if(S[i,j]==S[j,i]){print("Simétrica")}
       else{print("No simétrica")}
     }
   }
   S
 }
 S <- matrix(1:4,2,2)
 Sip(S,2,2)
## [1] "Simétrica"
## [1] "No simétrica"
## [1] "No simétrica"
## [1] "Simétrica"
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    4

这可能仍然不是你想要的,但它更进一步......

也可能有用:

apropos("symmetric")
isSymmetric(S)
于 2014-12-27T14:44:52.227 回答