다음 구조를 가진 행렬을 만드는 함수를 작성 중입니다. 주목해야 할 가장 중요한 점은 2 ~ 7 행에 다른 모든 열에 부 대각선 값과 0이 포함되어 있다는 것입니다.
0.00 0.00 0.00 0.00 0.00 0.50 0.50
0.75 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.80 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.80 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.90 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.60 0.00 0.00
0.00 0.00 0.00 0.00 0.00 0.80 0.00
내 함수에는 두 가지 입력이 x
있으며 y
. 첫 번째 행은 다음과 같이 x
벡터에 의해 정의됩니다 .
x <- c(0.00, 0.00, 0.00, 0.00, 0.00, 0.50, 0.50)
두 번째 벡터를 사용 y
하여 나머지 행렬을 완성하고 싶습니다 . 행렬이 완성 될 때까지 R2 C1의 첫 번째 값, R3 C2의 두 번째 값, R4 C3의 세 번째 값 등을 사용하고 나머지는 모두 0으로 채 웁니다.
y <- c(0.75, 0.80, 0.80, 0.90, 0.60, 0.80, 0.00)
R에서이 문제를 해결할 수 있다고 확신합니다.이 구조를 정의하는 행렬 함수가 이미 있거나 for 루프를 사용할 수 있습니다.
함수를 작성하고 행렬을 만들고 첫 번째 줄을 추가 할 수 있지만 (아래 참조) 다음 비트는 현재 스킬 세트를 약간 벗어납니다. 즉, 함수가 동적이어야합니다. x 및 y 값과 길이가 변경 될 수 있습니다.
누구의 도움이나 조언을 주시면 감사하겠습니다 ..
(이것은 내가 지금까지 가지고있는 것입니다 .... 조금 한심한 거 알아요)
matrix <- function (x, y) {
matrix <- x
matrix
}
한 번에 모두 시도해보십시오.
head(rbind(x, diag(y)),-1)
이것은 기본적으로 onal y
의 값을 사용하여 정사각형 행렬을 만들고 -ing diag
으로 한 행 아래로 밀어 넣은 다음 새로 만든 행렬의 맨 아래에서 추가 행을 삭제합니다.rbind
x
또는 창조적 인 인덱스의 비트를 사용 row
하고 col
도 할 수 있습니다 :
m <- matrix(0,nrow=7,ncol=7)
m[row(m)-col(m)==1] <- head(y,-1)
m[1,] <- x
둘 다 반환 :
# [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#[1,] 0.00 0.0 0.0 0.0 0.0 0.5 0.5
#[2,] 0.75 0.0 0.0 0.0 0.0 0.0 0.0
#[3,] 0.00 0.8 0.0 0.0 0.0 0.0 0.0
#[4,] 0.00 0.0 0.8 0.0 0.0 0.0 0.0
#[5,] 0.00 0.0 0.0 0.9 0.0 0.0 0.0
#[6,] 0.00 0.0 0.0 0.0 0.6 0.0 0.0
#[7,] 0.00 0.0 0.0 0.0 0.0 0.8 0.0
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다