2014-05-15 1 views
-3

숫자가 3 차원 행렬 (16x16x5)입니다. 하나의 층은 다음 매트릭스에 의해 묘사된다 :매트릭스에 행렬을 그리거나 r에 3d 볼륨을 그리는 방법

m = matrix (sample(0:127,256,replace=TRUE), nrow=16) 

유사한 5 개의 매트릭스가 스택에있다.

  1. 어떻게하면 R 개체로 묘사 할 수 있습니까? 코드를 다음 작동하지 않습니다

    m = list(list(128),list(128), list(128), list(128), list(128)) 
    for(i in 1:5) m[i] = matrix (sample(0:127,256,replace=TRUE), nrow=10) 
    
  2. 각 행렬의 맨 위에 그려 반투명 색 (필요한 단 하나 개의 그늘, 예를 들어 회색) 5 매트릭스와 윤곽 플롯으로 플롯되도록 내가 그들을 그릴 수있는 방법 서로. 마우스로 플롯을 이동하는 것이 가능해야합니다 (plot3d 또는 rgl의 rgl.surface와 같이). http://www.mathworks.in/help/matlab/ref/smooth3.html 또는이 페이지의 :

문제는이 페이지로 볼륨 렌더링과 유사하다 How can I visualize volume data as shown here, in MATLAB?

편집 :

array(sample(0:127,256*5,replace=TRUE), c(16,16,5)) 
+1

함수'array'는'matrix'에 대한 문서에 언급되어 있습니다. – joran

+0

감사합니다. {array (sample (0 : 127,256 * 5, replace = TRUE), c (16,16,5))}가 작동합니다. 이 질문에 이것을 추가했습니다. – rnso

+1

'plot3D' 패키지를 살펴볼 수도 있습니다. – CCurtis

답변

1

: 3 차원 매트릭스를 생성하는 작업을 다음과 enter image description here

require(rgl) 

plot3d(rep(1:128, 128*5), 
    rep(1:128,each=128*5), 
    rep(1:5, 128*128), 
    col=colorRampPalette(c(rgb(1,0,0,.1), rgb(0,0,1,.1)), alpha=TRUE)(128)[ m ]) 
+0

이것은 원하는 플롯이지만이 오류가 발생합니다 : colorRamp (colors, ...)의 오류 : 사용되지 않은 인수 (alpha = TRUE) Debian Stable Linux에서 버전 2.15.1을 사용하고 있습니다. {array (sample (0 : 127,256 * 5, replace = TRUE), c (16,16,5)}} – rnso

+0

[m] 배열 입력을 제공 할 것입니다. 음모가 완벽하게 작동하고 있습니다. 고마워요. – rnso

+0

"alpha = TRUE"없이 코드가 작동합니다. 그렇지 않으면 위에서 언급 한 오류가 발생합니다.이 문제를 해결할 수 있습니까? – rnso

관련 문제