대각선을 제외한 모든 0을 갖는 행렬을 가지고 있다고 가정 해 봅시다.대각선 만이 0이 아닌지 식별
m <- matrix(ncol=3,nrow=3)
m[,1] <- c(1,0,0)
m[,2] <- c(0,1,0)
m[,3] <- c(0,0,1)
매트릭스의 상단 삼각형과 하단 삼각형이 0인지 테스트 할 때 사용할 수있는 논리 체크는 무엇입니까?
대각선을 제외한 모든 0을 갖는 행렬을 가지고 있다고 가정 해 봅시다.대각선 만이 0이 아닌지 식별
m <- matrix(ncol=3,nrow=3)
m[,1] <- c(1,0,0)
m[,2] <- c(0,1,0)
m[,3] <- c(0,0,1)
매트릭스의 상단 삼각형과 하단 삼각형이 0인지 테스트 할 때 사용할 수있는 논리 체크는 무엇입니까?
all(m[lower.tri(m)] == 0, m[upper.tri(m)] == 0)
여기 @ GregaKešpret의 우수한 솔루션에 약간 짧은 대안이다 :
m <- diag(11:13)
m
all(m[!diag(nrow(m))] == 0) # TRUE
m[1,2] = 0.01
all(m[!diag(nrow(m))] == 0) # FALSE
diag
기능은 두 가지 모드가 있습니다 diag(11:13)
같이 그것을 벡터를 부여를하고 대각선에 넣습니다. 또는 diag(3)
과 같이 숫자를 지정하면 해당 크기의 단위 행렬이 만들어집니다. 그런 다음 모든 비대 각 요소를 추출하고이를 0과 비교합니다.
? all. 완전! –
또는'all (m [! diag (nrow (m))] == 0)' –