Extraer palabras de archivo
Publicado por Lucas (1 intervención) el 03/11/2008 20:36:00
Estoy aprendiendo Matlab y estoy intentando extraer los datos de un fichero cuyo formato es el siguiente:
BLOQUE 1
ISD LVT 3 8
AGT JJY 9 1
BCA KAL 3 17
BLOQUE 2
IJZ KVV 13 8
ACT HJY 9 1
DCA LAL 3 7
BLOQUE 3
....
Hay hasta 30 bloques, todos de 3 filas con dos elementos de tres letras y dos números enteros, separados por espacios.
Quiero almacenar los datos en variables según columnas, de 3 caracteres y numéricas, según su carácter.
He probado algo como:
fid = fopen('valores.dat');
frewind(fid);
for bloque=1:30
numbloq=fscanf(fid, '%9c ', [1]);
for fila=1:3
nombre1(fila,bloque) = fscanf(fid, '%3c',[1]);
espacio = fscanf(fid, '%c',[1]);
nombre2(fila,bloque) = fscanf(fid, '%3c',[1]);
espacio = fscanf(fid, '%c',[1]);
nombre3(fila,bloque) =fscanf(fid, '%c',[1]);
espacio = fscanf(fid, '%c',[1]);
nombre4(fila,bloque) = fscanf(fid, '%c',[1]);
end
end
pero la cosa no va, ¿Por favor, podéis ayudarme?
BLOQUE 1
ISD LVT 3 8
AGT JJY 9 1
BCA KAL 3 17
BLOQUE 2
IJZ KVV 13 8
ACT HJY 9 1
DCA LAL 3 7
BLOQUE 3
....
Hay hasta 30 bloques, todos de 3 filas con dos elementos de tres letras y dos números enteros, separados por espacios.
Quiero almacenar los datos en variables según columnas, de 3 caracteres y numéricas, según su carácter.
He probado algo como:
fid = fopen('valores.dat');
frewind(fid);
for bloque=1:30
numbloq=fscanf(fid, '%9c ', [1]);
for fila=1:3
nombre1(fila,bloque) = fscanf(fid, '%3c',[1]);
espacio = fscanf(fid, '%c',[1]);
nombre2(fila,bloque) = fscanf(fid, '%3c',[1]);
espacio = fscanf(fid, '%c',[1]);
nombre3(fila,bloque) =fscanf(fid, '%c',[1]);
espacio = fscanf(fid, '%c',[1]);
nombre4(fila,bloque) = fscanf(fid, '%c',[1]);
end
end
pero la cosa no va, ¿Por favor, podéis ayudarme?
Valora esta pregunta
0