Bonjour à tous,
Je souhaite extraire les valeurs en rouge d'un fichier 'Test.txt'
Comment faire vu que c'est un mélange de caractères et des valeurs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Õâ minimization on Ä_r,Ä_i Õâ = 0.092212 Iterations Number = 15 Parameters 1) L1 Thickness [nm] = 94.344 ü 3.807 2) L2 Thickness [nm] = 3.131 ü 0.954 3) L2 % ITO_(2L-D)_14-11-25.dsp = 41.95 ü 106.58 4) ITO_(2L-D)_14-11-25 Äì = 3.3616850 ü 0.1340348 5) ITO_(2L-D)_14-11-25 Äs = 2.4683200 ü 0.5268564 6) ITO_(2L-D)_14-11-25 ×t = 3.8609240 ü 0.1659209 7) ITO_(2L-D)_14-11-25 ×p = 1.2685870 ü 0.1114703 8) ITO_(2L-D)_14-11-25 ¢ð = 2.4000220 ü 0.3216354 9) ITO_(2L-D)_14-11-25 ¢d = 0.2456968 ü 0.1873222 10)ITO_(2L-D)_14-11-25 fñ = 1.9225770 ü 0.5552695 11)ITO_(2L-D)_14-11-25 ×ðñ = 5.2233250 ü 0.1590053 12)ITO_(2L-D)_14-11-25 Âñ = 3.0180400 ü 0.5440456 13)ITO_(2L-D)_14-11-25 fò = 0.0000000 ü 507.1194000 14)ITO_(2L-D)_14-11-25 ×ðò = 0.0000000 ü 507.1194000 15)ITO_(2L-D)_14-11-25 Âò = 0.0000000 ü 507.1194000 Correlation matrix
J'ai essayé avec fscanf :
Et ça me donne qu'une chaine de caractères : ÕâminimizationonÄ_r,Ä_iÕâ=0.092212IterationsNumber=15Parameters1)L1Thickness[nm]=94.344ü3.8072)L2T...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 >> fid=fopen('Test.txt'); >> Lignes=fscanf(fid,'%s\n'); >> fclose(fid)
Comment faire pour que ca puisse prendre au moins en compte le retour à la ligne ?
J'ai réussi à faire des choses avec Scilab :
Le problème est que Scilab est un peu limité pour les applications de ces valeurs. Je suis obligé de revenir sur Matlab mais je ne vois pas quelle fonction puis-je prendre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 [fd,err]=mopen('Test.txt','r'); // extraction des lignes Lignes=mgetl(fd,-1); // fermeture du fichier mclose(fd); // Suppression des espaces vides au début et à la fin Lignes=stripblanks(Lignes); //Cell=zeros(size(Lignes,1),7); //Chaine=[]; Valeurs=zeros(size(Lignes,1)+1,5); for j=0:1:6 Cell=strsplit(Lignes(4+j*54)); Chaine=[Cell(5)+Cell(6)+Cell(7)+Cell(8)+Cell(9)+Cell(10)+Cell(11)+Cell(12)]; Valeurs(1,1+j)=strtod(Chaine); for i=1:1:15 Cell=strsplit(Lignes(7+i+j*54)); Chaine=[Cell(35)+Cell(36)+Cell(37)+Cell(38)+Cell(39)+Cell(40)+Cell(41)+Cell(42)+Cell(43)+Cell(44)]; Valeurs(i+1,1+j)=strtod(Chaine); end end
Merci d'avance pour vos réponses !!
Partager