MATLAB Answers

How to sum a series of functions generated from data

6 views (last 30 days)
I have some 2D XRD data in array form(details don't matter).
Essentially I have a list of peak intensities, and miller indices h,k
I wish to plot the paterson function which in this case is
Where u and v are coordinates on the unit mesh.
Converting u,v to x,y and plotting them is straightforward. But I can't seem to get a handle on how to do the summation.
My initial attempt was to define a Paterson function for each individual reflection in my dataset, and then sum them together.
However it seems Matlab isn't happy having u and v defined in the way I have done.
clear all
%define unit mesh
a = 20.46;
b = 9.99;
gamma = 34.12;
%create array
x = [-2*a:1:2*a];
y = [-2*a:1:2*a];
%define u and v
u = x - y*cot(gamma*pi/180);
v = y*csc(gamma*pi/180);
%import data and create Paterson for each reflection
data = csvread('mydata.csv');
for N =1 : size(data,1);
peakn = data(N,1);
F = data(N,2);
h = data(N,3);
k = data(N,4);
Paterson(N,u,v) = F^2*cos(2*pi*(h*u+k*v));
end

  0 Comments

Sign in to comment.

Accepted Answer

Mark Sherstan
Mark Sherstan on 25 Apr 2019
The variable Paterson requires intergers as indices not doubles hence the error. Consider changing that last section as follows:
%import data and create Paterson for each reflection
data = csvread('mydata.csv');
for N =1 : size(data,1);
peakn = data(N,1);
F = data(N,2);
h = data(N,3);
k = data(N,4);
Paterson(N,:) = [u v F^2*cos(2*pi*(h*u+k*v))];
end

  0 Comments

Sign in to comment.

More Answers (0)

Sign in to answer this question.

Products


Release

R2018b