2015-02-03 4 views
0

R에서 두 행렬의 내적을 찾으려고합니다. 전치해야하는 q 행렬에서 이전에 무작위로 생성 한 3 개의 다른 q 값과 z 행렬 3 랜덤 포인트 i의 좌표로 작용하는 임의로 생성 된 z 값. 나는이 : 나는 [I]의를 계산하려고 할 때r에서 내적 찾기

z0= NULL 
    for (i in 1:100){ 
     z0[i]= 1 
    } 
    z1= runif(100, min=0, max= 20) 
    z2= runif(100, min=0, max=20) 
    q0= runif(1, 0, 1) 
    q1= runif(1, 0, 1) 
    q2= runif(1, 0, 1) 
    i= runif(1, 1, 101) 
    i= ceiling(i-1) 
    q= matrix(c(q0,q1,q2), ncol=3) 
    z= matrix(c(z0[i],z1[i],z2[i]), ncol=3) 
    s[i]= t(q)*z 

그러나, 나는 Error in t(q) * z : non-conformable arrays를 얻을. 나는 왜 그들이 같은 길이 일 것 같은지 나는 확신 할 수 없다.

R을 처음 사용하기 때문에 어떤 일이 벌어지고 있는지 잘 모르겠습니다.

감사합니다.

+1

: 나는 당신의 샘플 데이터를 성공적으로 사용할 수 있어요 q0, q1, q2), ncol = 3) : 오브젝트 'q0'을 찾을 수 없음 ' – akrun

+5

점 제품이'% * %'입니다. –

+0

@akrun, 나는 그것을 재현 할 수있게 만들었다. –

답변

0

파스칼이 말했듯이 R의 내적은 % * %입니다. 당신은 재현 예`Q = 매트릭스 (C (Q0, Q1, Q2)을 NcoI = 3) 매트릭스 오류 (C를 (보여 주어야

> z0= NULL 
> for (i in 1:100){ 
+  z0[i]= 1 
+ } 
> z1= runif(100, min=0, max= 20) 
> z2= runif(100, min=0, max=20) 
> q0= runif(1, 0, 1) 
> q1= runif(1, 0, 1) 
> q2= runif(1, 0, 1) 
> i= runif(1, 1, 101) 
> i= ceiling(i-1) 
> q= matrix(c(q0,q1,q2), ncol=3) 
> z= matrix(c(z0[i],z1[i],z2[i]), ncol=3) 
> t(q)%*%z 
      [,1]  [,2]  [,3] 
[1,] 0.3597998 3.227388 2.960053 
[2,] 0.3544622 3.179510 2.916141 
[3,] 0.3550781 3.185035 2.921208 
> z%*%t(q) 
     [,1] 
[1,] 4.340265