Bonjour à tous,
J'aurais besoin d'un petit peu d'aide pour créer un fichier Excel à partir de matlab. J'ai bien entendu lu tout votre tuto sur le sujet mais j'ai quelques points à éclaircir !
Tout d'abord, voici le programme que j'exécute :
Et ensuite j'ai commencé à faire ceci :
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
29 fid=fopen('045639 T01 02 1028710.txt','r'); data = strrep(fread(fid, [1 inf], '*char'), ',', '.'); fclose(fid); T = textscan(data,'%f%f%f%f%f%f%f', 'CollectOutput', 1); t=0:1:length(T{1}(5:end,1))-1; t=t'; y=[]; ENERGIE=[]; RMS=[]; A=[]; B=[]; Tmp=[]; i=5; l=length(Tmp); j=1; for i=5:1:7 Tmp=T{1}(5:end,i); [A(i) B(i)]=max(Tmp); y(i)=max(max(T{1}(5:end,i))).*0.1; P1(i)=find(Tmp(B(i)+1:end)<y(i),1,'first'); P2(i)=find(Tmp(1:B(i))<y(i),1,'last'); ENERGIE(i)=trapz(Tmp(P2(i):P1(i)+B(i))); RMS(i-4)=sqrt(mean(T{1}(P2(i):P1(i)+B(i),i-4).^2)); end La=20*log10(RMS/10^-6); Lv=20*log10(RMS/10^-9); La(1,4:7)=0; Lv(1,4:7)=0; DONNEE=[mean(Lv(1:3)),mean(La(1:3)),mean(A(5:7)),mean(ENERGIE(5:7)),max(T{1}(5:end,4))];
J'ai donc plusieurs questions, je vous les résume points par points pour être plus compréhensible.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Excel = actxserver('Excel.Application'); Workbook = Excel.Workbooks.Add; Excel.Visible=true; Excel.Worksheets.Item(1).Name='Valeurs Moyennes'; Excel.Worksheets.Item(2).Name='Valeurs récupérées'; Excel.Worksheets.Item(3).Name='Graphique'; Excel.ActiveSheet.Range('B4').Value='Moyenne Lv (dB)'; Excel.ActiveSheet.Range('C4').Value='Moyenne La (dB)'; Excel.ActiveSheet.Range('D4').Value='Moyenne Effort Maximal (N)'; Excel.ActiveSheet.Range('E4').Value='Moyenne Energie Effort (J)'; Excel.ActiveSheet.Range('F4').Value='Effort Traction Maximal'; Excel.ActiveSheet.Range('A1').Value='Date'; Excel.ActiveSheet.Range('A2').Value='Nombre de fichiers'; Excel.ActiveSheet.Range('A4').Value='OF ou numéro de pièce';
1) Je n'arrive pas à mettre la date de la création du fichier. J'ai déjà utilisé ceci mais ça ne m'affiche qu'un chiffre du genre "383272,58338":
2) Comment pourrais-je afficher dans une case du tableau Excel le numéro du fichier .txt, que j'utilise dès le début du code sur cette ligne, automatiquement :
Code : Sélectionner tout - Visualiser dans une fenêtre à part >> Excel.ActiveSheet.Range('B1').Value=now-datenum('01-Jan-1904 00:00:00');
3) Est-ce qu'il est possible de créer un graphique sur Excel (sur cette page précisément : "Excel.Worksheets.Item(3).Name='Graphique'") à partir d'une commande sous matlab et avec des données de matlab ? (plot ?)
Code : Sélectionner tout - Visualiser dans une fenêtre à part fid=fopen('045639 T01 02 1028710.txt','r');
4) J'aimerais que le programme puisse s'exécuter sur plusieurs fichiers .txt à la fois et non pas sur un seul fichier comme il est montré dans le précédent CODE. Je pensais qu'il était possible à ce que le programme puisse carrément prendre tout les fichiers .txt dans un dossier précis et qu'il les passe un par un pour ensuite stocker tous les résultats dans un seul fichier Excel mais je ne sais pas comment m'y prendre ! Ou peut-être, si c'est aussi possible, que l'utilisateur du programme puisse sélectionner lui même les fichiers avant l'exécution du programme grâce à un "message-box" ou quelque chose du genre.
Voilà j'espère avoir été assez clair !
En tout cas je remercie ceux qui se pencheront sur mes questions.
Tom
Partager