Füllen Sie das Zellenarray mit Elementen, die auf den Indizes MATLAB @ basiere
Ich habe ein n * m Zellenarray Cell_In:
a b
* *
* *
c *
* d
* *
* f
* -> steht für eine leere Zeichenfolge (''). Folgendes brauche ich:
a b
a b
a b
c b
c d
c d
c f
Für eine bestimmte Spalte muss ich die leere Zelle mit der vorherigen nicht leeren Zelle füllen, bis eine andere nicht leere Zelle gefunden wird. Es folgt der Code, den ich geschrieben habe.
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'];
Es funktioniert gut, aber ich möchte die beste Lösung wissen?