2012-08-17 2 views
-2

4 행과 400000 열이있는 행렬이 있습니다. 평균 연속 4 행을 얻어야합니다. 즉, 행 1 ~ 4, 행 5 ~ 8 등의 평균입니다.배열 평균

4 열은 이와 같이 유지되어야합니다. 나는 이것이 유치원 수준의 문제 일 수 있다는 것을 알고 있지만, Matlab에 프로그램을 작성하는 것에 대한 어떤 힌트를 주셔서 감사합니다. 나는 Matlab 프로그램을 작곡 한 경험이있다.

데이터의 예는 다음과 같이 될 수 있습니다로

[1 2 3 2; 
5 6 7 2; 
9 6 7 6; 
5 2 3 2; 
9 8 7 6; 
6 5 4 3; 
4 3 2 1; 
9 8 7 6] 

가 나는 결과를 원하는 : 당신의 데이터가 밖으로 누워하는 방법을 나에게 완전히 명확하지 않다

[5 4 5 3],[7 6 5 4] 
+2

커뮤니티는 일반적으로 자신이 시도한 것을 보여주는 몇 가지 코드를 게시하고 해당 코드의 일부를 수정하는 데 도움을 요청할 것입니다. 위의 "수정"링크를 클릭하여 질문을 편집 할 수 있습니다. – razlebe

+2

지금은 무엇입니까? 4 행 400k 열 또는 4 열 및 400k 행? 후자처럼 보인다 ... –

답변

2

, 그래서 당신이 생각하는 것에 대한 해답을 줄 것입니다.

a = [ 
    1 2 3 4 %# row 1 
    2 3 4 5 
    3 4 5 6 
    4 5 6 7 %# row 4 
    5 6 7 8 %# row 5 
    ... 
    ];    %# row m 

이 있고 당신은 단순히으로

averages = reshape(mean(reshape(a,4,4,[])),[],4) 

분석을 수행 할 수 있습니다 등 4를 통해 행 1의 열을 아래로 평균 5를 통해 8한다고 가정 :

A = reshape(a,4,4,[]) 

은 3D 배열로 매트릭스의 데이터를 재정렬합니다. 이 배열의 각 3D "레이어"는 4x4 행렬입니다.

B = mean(A) 

이것은 열 (방향 1)을 따라 평균을 취합니다. 자세한 내용은 help mean을 참조하십시오.

C = reshape(B,[],4) 

이것은 다시 Nx4 행렬 N=m/4에 평균의 배열을 재 배열한다.