How to pad empty cells with the last number in the row?
조회 수: 2 (최근 30일)
이전 댓글 표시
I want to convert a cell array (WS) to matrix. In order to do that I need to have the same number of rows in all arrays. To do that I padded the empty cells with zeros as shown below:
maxLengthCell=max(cellfun('size',WS,2));
for i=1:length(WS)
for j=cellfun('size',WS(i),2)+1:maxLengthCell
WS{i}(j)=0;
end
end
A=cell2mat(WS);
Instead of padding it with zeros, I want to fill the empty cells in each array with the last number in the row (ex: 1 5 8 6 4 9 9 9 9 9 9 9 ).
How can I do this?
댓글 수: 0
채택된 답변
Walter Roberson
2019년 10월 17일
FirstN = @(v,N) v(1:N);
PadLastN = @(v,N) FirstN([v, repmat(v(end),1,N)],N);
WS = cellfun( @(C) PadLastN(C, maxLengthCell), WS, 'uniform', 0);
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrices and Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!