Combine or Superpose 151 Sine Waves?
Show older comments
Using the below code and I have been able to successfully created 151 different sine waves all fit to my data set.
y = Score(:);
n = 501;
t = (1:501)';
games = 1:501;
data(1:151) = struct('X',NaN(501,3),'bhat',NaN(3,1),'yhat',NaN);
for ii = 1:151
tmp = 2*pi*(sincos(ii))*t;
data(ii).X = rand(501,3);
data(ii).X(:,2) = cos(tmp)';
data(ii).X(:,3) = sin(tmp)';
data(ii).bhat = data(ii).X\y;
data(ii).yhat = data(ii).bhat(1)+data(ii).bhat(2)*cos(tmp)+data(ii).bhat(3)*sin(tmp);
end
My question is how do I combine or superpose all 151 sine waves into one sine wave?
Thanks!!
Accepted Answer
More Answers (1)
Clifford Shelton
on 4 May 2012
0 votes
8 Comments
Walter Roberson
on 4 May 2012
Let
yhat = horzcat(data.yhat);
and then ask
std(yhat,2)
and
max(yhat,[],2) - min(yhat,[],2)
Clifford Shelton
on 4 May 2012
Walter Roberson
on 4 May 2012
Sorry I tend to forget that weight argument. Try
std(yhat,[],2)
Except now that I think of it, that isn't going to give you useful information. Ummm, skip that one for now.
This and the max-min are intended to probe the reasonableness of such a tight range of sums.
Reminder: Using the yhat field was a guess on my part as to which field (if any) holds the fitted sine wave.
Clifford Shelton
on 4 May 2012
Walter Roberson
on 4 May 2012
Did you try the difference I suggested earlier, max(yhat,[],2) - min(yhat,[],2)
Clifford Shelton
on 4 May 2012
Walter Roberson
on 4 May 2012
The std() and max/min calls are just for information to try to figure out the problem. You can remove the std() call.
Remove the existing line
yhat = sum(horzcat(data.yhat),2) ./151;
and use
yhat_array = horzcat(data.yhat);
yhat = mean(yhat_array,2);
and then for information purposes
max(yhat_array, [], 2) - min(yhat_array, [], 2)
with no semi-colon
Clifford Shelton
on 4 May 2012
Categories
Find more on Gaussian Mixture Distribution in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!