2013-02-05 6 views
0

가정하자 내가 가진이 행렬 내가오프 대각 행렬의 반복없이 대각선 요소 (들) - 대각선 하차하고, 대각선 대칭 검사

  1. 꺼짐을 확인 할

    8 3 1 1 2 2 1 1 1 1 1 1 2 2 1 1 3 
    3 8 3 1 1 2 2 1 1 1 1 1 1 2 2 1 1 
    1 3 8 3 1 1 2 2 1 1 1 1 1 1 2 2 1 
    1 1 3 8 3 1 1 2 2 1 1 1 1 1 1 2 2 
    2 1 1 3 8 3 1 1 2 2 1 1 1 1 1 1 2 
    2 2 1 1 3 8 3 1 1 2 2 1 1 1 1 1 1 
    1 2 2 1 1 3 8 3 1 1 2 2 1 1 1 1 1 
    1 1 2 2 1 1 3 8 3 1 1 2 2 1 1 1 1 
    1 1 1 2 2 1 1 3 8 3 1 1 2 2 1 1 1 
    1 1 1 1 2 2 1 1 3 8 3 1 1 2 2 1 1 
    1 1 1 1 1 2 2 1 1 3 8 3 1 1 2 2 1 
    1 1 1 1 1 1 2 2 1 1 3 8 3 1 1 2 2 
    2 1 1 1 1 1 1 2 2 1 1 3 8 3 1 1 2 
    2 2 1 1 1 1 1 1 2 2 1 1 3 8 3 1 1 
    1 2 2 1 1 1 1 1 1 2 2 1 1 3 8 3 1 
    1 1 2 2 1 1 1 1 1 1 2 2 1 1 3 8 3 
    3 1 1 2 2 1 1 1 1 1 1 2 2 1 1 3 8 
    

    대각선은 대칭입니까? (위 행렬에서 대칭입니다.)

  2. 요소는 대각선이 아닌 (반복되지 않음)? - 위의 행렬에서 1,2,3

  3. 대각선 요소는 대칭입니까? 그렇다면 요소를 인쇄 하시겠습니까? (상기 매트릭스처럼 8)

+6

답변을 수락하면 더 좋은 답변을 얻을 수 있습니다. – nograpes

+0

@nograpes 정보가 필요하지 않은 경우 어떻게 답변을 수락 할 수 있습니까? –

+2

몇 가지 답변을 선택했음을 확인했습니다. 그거 좋네. 이제 Google에'symmetric matrix r '을 입력 해보십시오. R에서 행렬이 대칭인지 테스트하는 함수를 찾을 수 있습니다. – nograpes

답변

2
# 1 
all(mat == t(mat)) 
[1] TRUE 

# 2 
unique(mat[upper.tri(mat) | lower.tri(mat)]) 
[1] 3 1 2 

# 3 
if(length(unique(diag(mat))) == 1) print(diag(mat)[1]) 
[1] 8 
+0

고마워요 :) –

1
mat <- as.matrix(read.table('abbas.txt')) 
isSymmetric(unname(mat)) 

는 rownames '및'COLNAMES '의 경우는 매트릭스 만 대칭 유의' '과 동일하다.'

unique(mat[lower.tri(mat)]) 

all(diag(mat) == rev(diag(mat))) 
# I assume you mean the diagonal is symmetric when its reverse is the same with itself. 
+0

'isSymmetric (mat)'은'FALSE'를 리턴합니다. –

+0

나는 똑같은 문제도 가지고 있었다. colnames를 'NULL'로 변경하면 True를 반환합니다. – liuminzhao

+0

이 동작이 의도되지 않았다고 가정합니다. 이것은 버그 인 것 같습니다. –