% escribe un fichero de datos arff
function escribe_arff(fichero_arff, fichero_matlab)

% carga datos
load(fichero_matlab);

% numero de datos
n_sujetos = 11;
n_carac = size(p1,1);
n_imag = size(p1,2);

% abre fichero escritura
file = fopen(fichero_arff, 'w');

% escribe la cabecera
fprintf(file, '@relation caras\n\n');
for i=1:n_carac
    fprintf(file, '@attribute carac_%02d numeric\n', i);
end
fprintf(file, '@attribute sujeto {');
for i=1:n_sujetos-1
    fprintf(file, '%02d, ', i);
end
fprintf(file, '%02d}\n\n', n_sujetos);
fprintf(file, '@data\n\n');

% escribe los datos
for i=1:n_sujetos
    orden = sprintf('p = p%d;', i);
    eval(orden);
    for j=1:n_imag
        for k=1:n_carac
            fprintf(file, '%f   ', p(k,j));
        end
        fprintf(file, '%02d \n', i);
    end
end

% cierra fichero
fclose(file);