How to pad empty cells with the last number in the row?
    3 次查看(过去 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 中查找有关 Structures 的更多信息
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

