How to pad empty cells with the last number in the row?

2 Ansichten (letzte 30 Tage)
maruljay
maruljay am 17 Okt. 2019
Kommentiert: maruljay am 17 Okt. 2019
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?

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 17 Okt. 2019
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);

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by