Eliminar filas de un archivo de texto
Publicado por Jorge (1 intervención) el 17/04/2009 21:31:32
Buenas!
Haber si me ayudais a resolver un problemita que estoy intentando hacer.
Tengo que coger un archivo txt. con el formato...
PROBLEMA DE LAS PLANTAS IRIS
CONJUNTO DE Entrenamiento y Validacion
Entradas (4) Salida(1)
6.3, 3.3, 4.7, 1.6, Iris-versicolor.
5.8, 4, 1.2, 0.2, Iris-setosa.
6.7, 3.3, 5.7, 2.1, Iris-virginica.
Tengo que elimnar las cabeceras, osea las 4 primeras lineas, y cambiar de cada linea siguiente, Iris-versicolor por (1 0), setosa por (0 1) y virginica por (1 1) y meterlo en otro archivo
quedaria
6.3, 3.3, 4.7, 1.6, (1 0).
5.8, 4, 1.2, 0.2, (0 1).
6.7, 3.3, 5.7, 2.1, (1 1).
he cogido y leido con este codigo el txt i metido en un cell array
id=fopen('Iris1.txt','r');
% mientras no llegue al final del archivo seguirá leyendo
Lineas={ }; % cell array que contendrá las líneas
while ~feof(id)
linea = fgetl(id); % lee toda la línea
Lineas{end+1,1}=linea;
end
st = fclose(fi);
Ahora tengo el problema que no se como mirar si las lineas son las que me tengo que quedar o eliminar, y en las que me tengo que uqedar, nose acceder a la ultima palabra tampoco para sustituirla, haber si me hechais una mano, que estoy pegaillo con el matlab
saludos y gracias
Haber si me ayudais a resolver un problemita que estoy intentando hacer.
Tengo que coger un archivo txt. con el formato...
PROBLEMA DE LAS PLANTAS IRIS
CONJUNTO DE Entrenamiento y Validacion
Entradas (4) Salida(1)
6.3, 3.3, 4.7, 1.6, Iris-versicolor.
5.8, 4, 1.2, 0.2, Iris-setosa.
6.7, 3.3, 5.7, 2.1, Iris-virginica.
Tengo que elimnar las cabeceras, osea las 4 primeras lineas, y cambiar de cada linea siguiente, Iris-versicolor por (1 0), setosa por (0 1) y virginica por (1 1) y meterlo en otro archivo
quedaria
6.3, 3.3, 4.7, 1.6, (1 0).
5.8, 4, 1.2, 0.2, (0 1).
6.7, 3.3, 5.7, 2.1, (1 1).
he cogido y leido con este codigo el txt i metido en un cell array
id=fopen('Iris1.txt','r');
% mientras no llegue al final del archivo seguirá leyendo
Lineas={ }; % cell array que contendrá las líneas
while ~feof(id)
linea = fgetl(id); % lee toda la línea
Lineas{end+1,1}=linea;
end
st = fclose(fi);
Ahora tengo el problema que no se como mirar si las lineas son las que me tengo que quedar o eliminar, y en las que me tengo que uqedar, nose acceder a la ultima palabra tampoco para sustituirla, haber si me hechais una mano, que estoy pegaillo con el matlab
saludos y gracias
Valora esta pregunta


0