% Oxford powder.dat to .xy converter % © Ruben VERA 2018 % 15/11/2018 clc; clear all; close all % 1) chargement du fichier Oxford powder.dat [DATfilename,PathName,FilterIndex]=... uigetfile('*.dat','Select an Oxford xxxpowder.dat file',... 'MultiSelect','off'); % Exemple de contenu attendu : % [PowderExtract1dNew 1] % 2thetadeg d-value intx sigx count % 10.00000 8.83798 0.82803 0.02534 129 DAT=fopen(DATfilename); % on saute les deux premières lignes pour ne récupérer que les données fgetl(DAT); fgetl(DAT); A=fscanf(DAT,'%f'); % lecture de toutes les données fclose(DAT); % Mise en forme de la matrice en n lignes de 5 colonnes A=reshape(A,5,[])'; % 2) Afficher la figure en plein écran plot(A(:,1),A(:,3)*100) % seuls les 2 theta et Intensité sont utilisés title(DATfilename) xlabel('Two Theta degrees') ylabel('Intensity') set(gcf,'units','normalized','outerposition',[0 0 1 1],... 'pointer','crosshair' ); % 3) écriture des résultats dans un fichier .xy lu par Bruker DIFFRAC.EVA [pathstr,name,ext]=fileparts(DATfilename); % on écrit le .xy dans le même dossier xyFilename=fullfile(PathName,[name,'.xy']); XY=fopen(xyFilename,'w'); fprintf(XY,'Id: "" Comment: "" Operator: "" Anode: "Cu" Scantype: "Locked Coupled" TimePerStep: "1"\r\n'); A=[A(:,1), A(:,3)*100]'; % L'intensité est amplifiée par 100 fprintf(XY,'%7.3f %12.2f\r\n',A); fclose(XY);