Preencher matriz de células com elementos baseados nos índices MATLAB

Eu tenho uma matriz de células n * m Cell_In:

a b
* *
* *
c *
* d
* *
* f

* -> representa uma string vazia (''). Aqui está o que eu preciso:

a b
a b
a b
c b
c d
c d
c f

Para uma coluna específica, preciso preencher a célula vazia com a célula não vazia anterior até que outra célula não vazia seja encontrada. A seguir está o código que escrevi.

b = ~cellfun(@isempty,a);
c = [find(b(:,1) == 1);size(a,1)+1]; e = diff(c);
d = [find(b(:,2) == 1);size(a,1)+1]; f = diff(d);
s1 = ''; s2 = '';
for i = 1:length(e)
    s1 = [s1,repmat(a(c(i),1),1,e(i))];
end

for i = 1:length(f)
    s2 = [s2,repmat(a(d(i),2),1,f(i))];
end
Cell_Out = [s1',s2'];

Está funcionando bem, mas quero saber a melhor solução?

questionAnswers(2)

yourAnswerToTheQuestion