한 행렬의 대각선 값 (다른 셀에서는 0) 만 동일한 차원의 다른 행렬로 반환

Pernille

분산-공분산 행렬의 값을 축소 계수 (람다)에 의해 분산 (행렬의 대각선 값)으로 축소해야합니다. 따라서 lambda * shrinkagematrix + (1-lambda) * variancecovariancematrix, 여기서 :

분산 공분산 행렬은 다음과 같습니다.

Function VarCovar(rng As Range) As Variant
    Dim i As Integer
    Dim j As Integer
    Dim numcols As Integer

    numcols = rng.Columns.Count
    numrows = rng.Rows.Count

    Dim matrix() As Double
    ReDim matrix(numcols - 1, numcols - 1)

    For i = 1 To numcols
        For j = 1 To numcols
            matrix(i - 1, j - 1) = Application.WorksheetFunction.Covar(rng.Columns(i), rng.Columns(j)) * numrows / (numrows - 1)
        Next j
    Next i
    VarCovar = matrix

, 이것은 나에게 다음과 같은 매트릭스를 제공합니다.

 0.40  -0.10  0.11                                                 
-0.10   0.17 -0.03                                              
 0.11  -0.03  0.19 

그런 다음 다음과 같은 수축 매트릭스를 만드는 데 문제가 있습니다.

0.40  0.00  0.00                                      
0.00  0.17  0.00                                              
0.00  0.00  0.19 

즉, 대각선 값 (= 변수의 분산) 만 반환하고 다른 모든 셀에서는 0을 반환합니다.

따라서 어떤 방식으로 행 = 열 수인 경우에 대한 값, 즉 (1,1), (2,2) 및 (3,3) 값만 포함하는 행렬을 반환합니다.

이것에 도움이 될 사람이 있습니까?

Pᴇʜ

당신은에서 카운트가 하나 개의 루프가 필요 i = 1 to 3채우기를 Matrix(1, 1), Matrix(2, 2)Matrix(3, 3)사용Matrix(i, i)

Function VarCovar(InputMatix As Range) As Variant
    Dim MatrixColumns  As Long
    MatrixColumns = InputMatix.Columns.Count

    Dim MatrixRows  As Long
    MatrixRows = InputMatix.Rows.Count

    Dim Matrix() As Double
    ReDim Matrix(1 To MatrixColumns, 1 To MatrixColumns)

    Dim i As Long
    For i = 1 To MatrixColumns
        Matrix(i, i) = Application.WorksheetFunction.Covar(InputMatix.Columns(i), InputMatix.Columns(i)) * MatrixRows / (MatrixRows - 1)
    Next i

    VarCovar = Matrix
End Function

내가 변경된 것을 참고 Matrixdimenstions을 Matrix(1 To MatrixDimension, 1 To MatrixDimension)시작하는 1하지 0쉽게 세포에 기록하는 데 사용할 수 있습니다 :

Sub test()

    Range("A5:C7").Value = VarCovar(Range("A1:C3"))

End Sub

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

다른 행렬의 대각선에 0으로 구성된 행렬 삽입

분류에서Dev

열에서 값을 찾고 동일한 행이지만 다른 열의 값을 반환합니다.

분류에서Dev

다른 열의 값을 기반으로하지만 동일한 행에있는 열에 여러 셀 추가

분류에서Dev

max 함수 (excel)에서 반환 된 동일한 행의 다른 셀 값을 결정하기위한 셀 함수

분류에서Dev

다른 행렬의 값에 따라 한 행렬의 값을 효율적으로 이동하는 방법

분류에서Dev

모든 대각선이 대각 방향에서 동일한 값인 행렬을 만듭니다.

분류에서Dev

값이 0 일 때 SQL CASE, 동일한 값을 가진 다른 행의 값을 반환합니다.

분류에서Dev

R에서 한 행렬의 각 행을 다른 행렬로 다중화하는 방법은 무엇입니까?

분류에서Dev

다른 반환 값으로 동일한 메서드 모의

분류에서Dev

두 차원의 크기가 다른 동일한 함수 행렬에 전달

분류에서Dev

다른 numpy 배열에서 거의 동일한 행렬을 쌍으로 만드는 방법

분류에서Dev

다른 두 행렬의 값을 기반으로 행렬의 값 대체

분류에서Dev

MATLAB에서 빈 행렬을 동일한 차원의 0 행렬로 변경

분류에서Dev

단일 행을 여러 행으로 분할하는 방법, 각 행에는 Excel 표의 서로 다른 열에 대한 고유 한 셀 값이 있습니다.

분류에서Dev

다른 열의 다른 값과 함께 열의 각 값에 대해 하나의 행만 반환

분류에서Dev

두 인터페이스에 동일한 서명하지만 서로 다른 반환 값의 형태와 방법

분류에서Dev

Excel에서 한 셀의 값을 다른 셀의 위치로 만드는 방법

분류에서Dev

다른 두 열의 순서로 한 열에서 새 행렬 만들기

분류에서Dev

다른 행에서 동일한 값을 갖는 두 행의 값 차이 얻기

분류에서Dev

다른 행렬의 값에 따라 한 행렬의 요소를 배열로 합산

분류에서Dev

numpy : 행렬에서 각 행의 다른 하위 집합에 대한 평균

분류에서Dev

NA를 r의 각 그룹에 대해 동일한 열의 다른 행에있는 값으로 바꿉니다.

분류에서Dev

numpy에서 특수 구조의 nxn 행렬 만들기 : 단위 행렬과 1 열씩 오른쪽으로 이동 한 동일한 행렬의 합

분류에서Dev

R의 다른 열에 동일한 값을 갖는 행렬에서 값 가져 오기

분류에서Dev

다른 열의 동일한 행에있는 값과의 비교를 기반으로 셀 수 계산

분류에서Dev

다른 열을 검색하여 동일한 행에 값 반환

분류에서Dev

한 열에 대해 0이 아닌 값에 대해 절대 값으로 정렬하여 다른 열의 동일한 값을 함께 유지

분류에서Dev

특정 좌표에 대해 행렬의 일부를 다른 행렬의 값으로 대체

분류에서Dev

Pandas : 열 값을 다른 행의 동일한 열에 대한 다른 값과 비교하여 행 필터링

Related 관련 기사

  1. 1

    다른 행렬의 대각선에 0으로 구성된 행렬 삽입

  2. 2

    열에서 값을 찾고 동일한 행이지만 다른 열의 값을 반환합니다.

  3. 3

    다른 열의 값을 기반으로하지만 동일한 행에있는 열에 여러 셀 추가

  4. 4

    max 함수 (excel)에서 반환 된 동일한 행의 다른 셀 값을 결정하기위한 셀 함수

  5. 5

    다른 행렬의 값에 따라 한 행렬의 값을 효율적으로 이동하는 방법

  6. 6

    모든 대각선이 대각 방향에서 동일한 값인 행렬을 만듭니다.

  7. 7

    값이 0 일 때 SQL CASE, 동일한 값을 가진 다른 행의 값을 반환합니다.

  8. 8

    R에서 한 행렬의 각 행을 다른 행렬로 다중화하는 방법은 무엇입니까?

  9. 9

    다른 반환 값으로 동일한 메서드 모의

  10. 10

    두 차원의 크기가 다른 동일한 함수 행렬에 전달

  11. 11

    다른 numpy 배열에서 거의 동일한 행렬을 쌍으로 만드는 방법

  12. 12

    다른 두 행렬의 값을 기반으로 행렬의 값 대체

  13. 13

    MATLAB에서 빈 행렬을 동일한 차원의 0 행렬로 변경

  14. 14

    단일 행을 여러 행으로 분할하는 방법, 각 행에는 Excel 표의 서로 다른 열에 대한 고유 한 셀 값이 있습니다.

  15. 15

    다른 열의 다른 값과 함께 열의 각 값에 대해 하나의 행만 반환

  16. 16

    두 인터페이스에 동일한 서명하지만 서로 다른 반환 값의 형태와 방법

  17. 17

    Excel에서 한 셀의 값을 다른 셀의 위치로 만드는 방법

  18. 18

    다른 두 열의 순서로 한 열에서 새 행렬 만들기

  19. 19

    다른 행에서 동일한 값을 갖는 두 행의 값 차이 얻기

  20. 20

    다른 행렬의 값에 따라 한 행렬의 요소를 배열로 합산

  21. 21

    numpy : 행렬에서 각 행의 다른 하위 집합에 대한 평균

  22. 22

    NA를 r의 각 그룹에 대해 동일한 열의 다른 행에있는 값으로 바꿉니다.

  23. 23

    numpy에서 특수 구조의 nxn 행렬 만들기 : 단위 행렬과 1 열씩 오른쪽으로 이동 한 동일한 행렬의 합

  24. 24

    R의 다른 열에 동일한 값을 갖는 행렬에서 값 가져 오기

  25. 25

    다른 열의 동일한 행에있는 값과의 비교를 기반으로 셀 수 계산

  26. 26

    다른 열을 검색하여 동일한 행에 값 반환

  27. 27

    한 열에 대해 0이 아닌 값에 대해 절대 값으로 정렬하여 다른 열의 동일한 값을 함께 유지

  28. 28

    특정 좌표에 대해 행렬의 일부를 다른 행렬의 값으로 대체

  29. 29

    Pandas : 열 값을 다른 행의 동일한 열에 대한 다른 값과 비교하여 행 필터링

뜨겁다태그

보관