Come ho scritto nella risposta precedente, senza il file di testo di input (od un sui esempio significativo) non si può verificare il codice.
Hai provato ad eseguire il codice in modalità debugger?
Hai verificato il valore delle variabili nel corso dell'esecuzione?
Quello che si può dire, leggendo il codice, è che, nel secondo loop, la variabile "data" viene sovrascritta ad ogni iterazione per cui, alla fine, dovresti avere solo l'ultima serie di dati.
Ammesso che le istruzioni precedenti funzionino (e senza il file di testo non lo si può verificare), dovresti trasformare la variabile "data" in una matrice, qualcosa del tipo
data=[]
for h=1:length(K)
D=F{1}(K(h));
dataTxt = sprintf('%s\n',D{:});
data(h,:) = textscan(dataTxt,'%f %f %f \n');
%data=data{1}
end
ma non possibile verificare la correttezza di questa soluzione.