- Consider that M need not be a multiple of 2
- Reshape the [M x N] array to a [2 x M/2 x N] array
- Sum over the first dimension and divide by 2
- Remove the first dimension to get a 2D matrix again
Hi i'm new to Matlab. I have a matrix of 3985* 720, i want to produce a new matrix from this by averaging every 2 rows (1992*720), i would appreciate if someone can help me on this .
조회 수: 1 (최근 30일)
이전 댓글 표시
Hi i'm new to Matlab. I have a matrix of 3985* 720, i want to produce a new matrix from this by averaging every 2 rows (1992*720), i would appreciate if someone can help me on this .
댓글 수: 0
채택된 답변
Jan
2017년 9월 27일
편집: Jan
2017년 9월 27일
data = rand(3985, 720);
nOut = floor(size(data, 1) / 2);
dataCut = data(1:2*nOut, :);
dataAvg = sum(reshape(dataCut, 2, nOut, []), 1) * 0.5;
dataAvg = reshape(dataAvg, nOut, []); % Or: squeeze(dataAvg)
Explanation:
댓글 수: 1
Jan
2017년 9월 27일
Please open a new thread for a new question. Then include the current code and explain, what "does not work" means. The solution will be something like this:
Base = 'C:\YourPath';
FolderList = dir(Base);
FolderList = FolderList([FolderList.isdir]);
for iFolder = 1:numel(FolderList)
aFolder = fullfile(Base, FolderList(iFolder).name);
... Do what you want
end
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Logical에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!