Matlab - EXPRESION REGULAR PARA IDENTIFICAR FILES

 
Vista:
sin imagen de perfil

EXPRESION REGULAR PARA IDENTIFICAR FILES

Publicado por JONATHAN (1 intervención) el 03/03/2016 12:52:22
Estimados,

Me han recomendado utilizar expresiones regulares (novato en el tema) para identificar un determinado file y poder leer un archivo de datos contenido en tal file para procesar sus datos.

Los files tienen por nombre "vis_Kn0.1_Kt0.1_Mu1.0_Br10_nr2.0_lode30" donde:
1) Kn, Kt, Mu, Br, nr, lode son los parametros de cada simulacion;
2) Los valores 0.1, 0.45, 1.0, 30, etc corresponden a los valores de cada parametro anexo (por ejemplo: Kn=0.1, Mu=1.0, lode=30, etc)

He creado una funcion para crear un archivo txt donde presento los valores de cada parametro (adjunto al final).

Ahora me toca crear otra funcion que use estos valores y que compare con todos los files de formato "vis_Kn*....." para identificar al correcto. Para esto me comentaron que las expresiones regulares podian ser bastante eficientes. Luego toca ingresar al file y procesar.

Si hubiera alguien con alguna idea/comentario estare muy agradecido.

Gracias.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
%------------------------------------------------------------------------------------------------%
function write_inputDEM(filename)
Title_1 = 'DEM Micromechanical Parameters';
Title_2 = 'Microparameters';
Title_3 = 'Values';
Microparameters = {'Kn','Kt','Mu','Br','nr','lode'};
Data = [
0.01
0.01
0.50
0.40
0.30
30];
fid = fopen(filename,'w+t');
if fid < 0
    fprintf('error opening file\n');
    return;
end
fprintf(fid,'%s\n',Title_1);
fprintf(fid,'\n');
fprintf(fid,'%10s',Title_2);
fprintf(fid,'     %s\n',Title_3);
 
i = 1;
N = length(Data);
global y
y = zeros(6,2);
 
while i <= N-1
    fprintf(fid,'%8s:        ',Microparameters{i});
    fprintf(fid,'%8.2f\n',Data(i));
    %y(i,1) = [Microparameters{i}];
    %y(i,2) = [Data(i)];
    i = i + 1;
end
    fprintf(fid,'%8s:       ',Microparameters{i});
    fprintf(fid,'%8.d\n',Data(i));
    %y(i,1) = [Microparameters{i}];
    %y(i,2) = [Data(i)];
    return;
 
fclose(fid);
end
%------------------------------------------------------------------------------------------------%
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

EXPRESION REGULAR PARA IDENTIFICAR FILES

Publicado por Miguel González (42 intervenciones) el 13/04/2016 20:32:46
% Si los microparametros son fijos
% Microparameters = {'Kn','Kt','Mu','Br','nr','lode'};

Dt = [0.01; 0.01; 0.50; 0.40; 0.30; 30]
Dt =

0.0100
0.0100
0.5000
0.4000
0.3000
30.0000


file=['vis_kn' num2str(Dt(1)) '_kt' num2str(Dt(2)) '_Mu' num2str(Dt(3)) '_Br' num2str(Dt(4)) '_nr' num2str(Dt(5)) '_lode' num2str(Dt(6))]

file =

vis_kn0.01_kt0.01_Mu0.5_Br0.4_nr0.3_lode30


% Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar