2011-04-06 3 views
2

함수에 빌드가 있거나 2d array 요소의 히스토그램을 그리는 쉬운 방법이 있는지 궁금합니다.Matlab에서 2D 매트릭스의 요소에 막대 그래프

예를 들어, A=rand(100,1) 인 경우 A1D array이고 hist(A)은 히스토그램을 처리 할 수 ​​있습니다.

그러나 A의 각 요소를 1D array에 처리하는 것처럼 A=rand(100,100)의 요소에 막대 그래프를 만들고 싶습니다. 그렇게하는 쉬운 방법이 있습니까?

답변

2

이 명령은 당신이 원하는 것을 할 것입니다 :

hist(reshape(A, prod(size(A)), 1)) 

는 그것이 무엇을하는 것은 하나 개의 컬럼과의 수와 같은 행의 번호와 매트릭스로 재편하여 행렬 A의 출력 벡터를 만드는 것입니다 (A)의 요소 :

prod(size(A)) = number_of_columns(A) * number_of_rows(A) 

또는 짧은 방법 :

hist(A(:)) 

이는의 모든 요소를 ​​필요 따라서 벡터를 생성한다.

+1

'A (:) '요나'대답으로 긴 모양 변경 명령과 동일한 않습니다. – abcd

12

당신은 당신이 평소와 같이 hist을 사용할 수 있습니다, 벡터에 A을 바꿀 필요가 :

hist(A(:)) 
+6

MATLAB의 단순한 열 벡터화, 'A (:)'는 배열이 항상 웃고있는 것처럼 보이기 때문에 어느 방향으로 보더라도 :) – abcd

+0

Jonas! 그게 정확히 내가 무엇을 찾고 있어요 –

+1

@ Alfred : 내 대답이 도움이된다면, 받아들이는 것을 고려해보십시오. – Jonas