행렬

2014-04-08 4 views
-2

가정하자 난 요소로 그 행렬과 행렬을 만들고 싶어 3 행렬 C, WS행렬

C <- matrix(1:3) 
W <- matrix(2:4) 
S <- matrix(3:5) 

있다. 행렬 K이라고 말하면서 행렬 K의 각 요소는 행렬 자체입니다. 행렬의 목록이 작동하지만 대신 행렬 형식으로 작동합니다. 즉 :

> K 
     [,1] [,2] [,3] 
[1,] C 0 0 
[2,] 0 W S 

C, WS 및 각 매트릭스 될 물체가 큰 매트릭스 K 내부에 저장된 것이다.

궁극적으로 나는 K %*% K 또는 그와 비슷한 행렬 곱셈을 사용할 수 있기를 바랍니다.

+0

행렬은 내가 원하는대로 나타나지 않지만 첫 행 [C 0 0]과 두 번째 행 [0 W S]가있는 2X3 행렬 –

+0

안녕하십니까. http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example 및'? array'을 읽어보십시오. – sgibb

+1

왜 이걸 원할 지 모르겠지만'matrix (list (C, 0,0, W, 0, S), nrow = 2)'와 같은 목록의 행렬을 만들 수 있습니다. 그러나 실제로 실용적이지는 않습니다. – thelatemail

답변

2

R 행렬에 요소가 될 수있는 것보다 많은 클래스가 없습니다. 특히 자신의 행동에 대한 속성에 의존하는 객체는 필수 기능을 유지할 객체가 될 수 없습니다. 그리고 역설적이게도 그 행동은 dim (ension) 속성에 의해 결정되므로 행렬 자체를 포함합니다. 이러한 제외는 날짜, 요인 및 데이터 프레임과 같은 특수 목록에 적용됩니다. 매트릭스에 인덱스 가능 항목으로 목록을 포함시킬 수 있지만 @ thelatemail의 주석에 따르면 다소 복잡 할 수 있습니다.

> C <- matrix(0, 3,2) 
> W <- matrix(1, 4,5) 
> S <- matrix(2, 6,7) 
> bigM <- matrix(list(), 2, 3) 
> bigM[1,1] <- list(C) 
> bigM[2,2] <- list(W) 
> bigM[2,3] <- list(S) 
> bigM 
    [,1]  [,2]  [,3]  
[1,] Numeric,6 NULL  NULL  
[2,] NULL  Numeric,20 Numeric,42 
> bigM[2,3][[1]][42] 
[1] 2 

공지 [2,3]와리스트로 추출 후 [[1]]와 매트릭스 자체를 추출 할 필요가있다. 당신이 row,column 지수로 그것을 참조하기로 결정했다면, 당신은 행렬에서 42 번째 항목을 얻을 수있는 추가 단계 후에 만 ​​번째 항목이었을 것입니다.

+0

이것은 불필요하게 복잡해 보입니다. OP는 단순히 배열을 사용해야합니다. – Roland

+0

제안 사항은 배열과 행렬이 모두 속성을 제거한다는 사실을 설명하지 못합니다. 날짜 - 시간 객체 또는 데이터 프레임을 배열에 넣어보십시오. 배열 구조를 없애고 R 목록으로 끝나거나 속성을 잃어 버리게됩니다. –

관련 문제