I decided here and there to publish various MATLAB functions I’ve written for my own work. There’s just one caveat- each one of these is a serious work in progress. In fact, they may not progress much more than what is disclosed here since they get the job done for me.
But, I felt that this likely would help a few people who are trying to do the same type of thing, and I’d rather ease those who come after me, and give them a slight step ahead if possible.
For those of you with old version of the Philips XPert XRD software (specifically those who can’t output in XRDML files), I offer a crude import function for simple scans.
This function loadx00 loads “.x00″ files from the Philips XPert system. As you can see, this is a very crude function, it searches for the needed info from the file and grabs the next string as data etc. You can download this file as a text file here: loadx00.m, revision 8
function [Data, x] = loadx00(filename) %% version written on Wednesday; October 1, 2008 %% %% This function was written by Allen J. Hall %% allen@allenjhall.com %% http://www.allenjhall.com/content/ %% Free to use in part or full. %% However, the following must remain free and not be paid for. %% (creative commons copyright may apply) %% If you happen to see some code that was copied from here or there %% you probably noticed that I copied some code form here and there. %% (oh, btw, you get what you pay for- this isn't perfect!!) %open file fid = fopen(filename,'r'); % First, we need to find the area in the header with the important info.. % so we search until we find our first important string: for i = 1:40 C = textscan(fid,'%s',1,'delimiter',','); if strcmp(C{1}, 'FirstAngle') testme = 0; break end end % We found the important string, the following field will then be the number needed: C = textscan(fid,'%f',1,'delimiter',','); FirstAngle = C{1}; % Start from where we left off, and grab Scan Range ScanRangeText = textscan(fid, 'ScanRange, %f',1); ScanRange = ScanRangeText{1}; % Grab Step Width StepWidthText = textscan(fid, 'StepWidth, %f',1); StepWidth = StepWidthText{1}; % Make X-axis vector for plotting in the future x = (FirstAngle:StepWidth:(FirstAngle + ScanRange)); x = x'; %skip some lines until the data: C = textscan(fid, '%s', 5, 'delimiter',','); DataText = textscan(fid, '%f'); Data = DataText{1}; fclose(fid);