2012-10-21 3 views
0

저는 Matlab을 처음 사용합니다.어레이를 n 부분으로 분할 한 다음 다시 결합하여 히스토그램을 만듭니다.

제가

배열 a = [1:1:1000]

I를 50 부 1-20을 이것을 나눌 필요가 있다고 가정하자; 21-40 .... 981-1000.

나는 이렇게하려고하고있다.

E=1000X 
a=[1:E] 
n=50 
d=E/n 
b=[] 
for i=0:n 
    b(i)=a[i:d] 
end 

하지만 결과를 얻을 수 없습니다.

그리고 내가하고있는 두 번째 부분은 다른 결과에 따라 3 번째 분할 배열의 첫 번째 분할 배열에 카운터가 있어야하며 +1이되어야합니다. 카운터는 +1이어야하며, 결국에는 모든 카운터의 히스토그램을 만들어야합니다.

+0

-1 구글이나 검색을 처음부터 귀찮게하지 마십시오. Google 검색 "matlab histogram"의 처음 두 결과는 hist() (플롯) 및 histc() (비닝 함수)입니다. SO : http://stackoverflow.com/search?q=matlab+histogram 답변은 두 번째 링크입니다. 이것은 당신 스스로 일을 대신하는 것이 아닙니다. – Marc

답변

1

one function : histc으로이 모든 작업을 수행 할 수 있습니다. 현재 상황에서 :

X = (1:1:1000)'; 
Edges = (1:20:1000)'; 
Count = histc(X, Edges); 

는 기본적으로 CountEdges 요소 순차적 범주의 경계를 정의하는 일정하게 증가하는 벡터가 Edges에 정의 된 범주로 구분 X의 요소 수를 포함합니다. 더 일반적인 예는 확률 밀도를 사용하여 X을 구성 할 수 있습니다, 예를 들어, 균일 한 분포, 말 :

X = 1000 * rand(1000, 1); 

XEdges의 사양과 주변의 플레이는 생각을해야한다. 실제 히스토그램 플롯을 원하면 hist 함수를 살펴보십시오.

질문의 두 번째 부분에 관해서는, 나는 당신이 무엇을 요구하고 있는지 정말로 확신하지 못합니다.

관련 문제