2017-09-25 3 views
0

다음 코드를 벡터화하는 방법이 있습니까? histcounts 함수를 3D 행렬의 모든 슬라이스에 적용하고 싶습니다.MATLAB : 3D 매트릭스의 모든 조각에 대한 통계

mat = rand(100,1,5); 
[~,~,numRuns] = size(mat); 
for i = 1 : numRuns 
    [n(:,:,i), edges(:,:,i)] = histcounts(mat(:,:,i)); 
end 

답변

0

모든 실행에 대해 별도의 히스토그램이 필요한 경우에는 그대로 두십시오. 왜 그것을 벡터화하고 싶습니까? 읽기 쉽고 중요합니다. (cellfun으로 벡터화 할 수 있지만이 경우 복잡하고 더 빠를 것입니다.) 계산 속도를 높이려면 for 대신 parfor을 사용하십시오.

하지만 모든 데이터의 히스토그램을 원할 수도 있습니다. 그럼 그냥 해봐

[N,edges] = histcounts(mat); 

그리고 전체 히스토그램을 얻었습니다.