Manipulating arrays within a cell array
조회 수: 10 (최근 30일)
이전 댓글 표시
I have a cell array, A_C which has 401 cells (1x401) each with arrays of varying sizes, but same dimensionality. I'm trying to divide each element within an array by the number of elements within that array. And then replace the array with the new one.
So for example, the array A(1,2) = 1x101, I want to divide each element within this array by 101, B = A(1,2)/101 and then I want to replace the array at A(1,2) by B.
채택된 답변
Jan
2018년 1월 4일
편집: Jan
2018년 1월 4일
% Create some test data: (your code)
dxs = 0:5e-06:0.002;
nCell = length(dxs);
xs = cell(1, nCell); % Pre-allocate!!!
for k = 1:nCell
xs{k} = 0:dxs(k):5e-04;
end
% Divide each cell by its length:
B = cell(size(xs)); % Pre-allocate!!!
for k = 1:nCell
B{k} = xs{k} / length(xs{k});
end
Simple with a loop, isn't it? I find "nCell" nicer than "num_cells_dxs" and avoid "l" as variable, because it is confused with 1 easily.
I assume the cellfun is nicer, but slower:
B = cellfun(@(c) c / length(c), xs, 'UniformOutput', false)
댓글 수: 0
추가 답변 (1개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!