Using For Loop in a function over all files in a folder with Matlab
1 view (last 30 days)
Show older comments
Dear Matlab Users,
I want to use for loop in a function over all files in a folder.
I want to apply the genhurst function over all files in a folder.
H = genhurst(S)
where S is the time series with 1*6154 vector.
Here, I am explaining the details of the genhurst function as follows.
function [mH,sH]=genhurst(S,q,maxT)
if nargin < 2, q = 1; maxT = 19; end
if nargin < 3, maxT = 19; end
if size(S,1)==1 & size(S,2)>1
S = S';
elseif size(S,1)>1 & size(S,2)>1
fprintf('S must be 1xT \n')
return
end
if size(S,1) < (maxT*4 | 60)
warning('Data serie very short!')
end
L=length(S);
lq = length(q);
H = [];
k = 0;
for Tmax=5:maxT
k = k+1;
x = 1:Tmax;
mcord = zeros(Tmax,lq);
for tt = 1:Tmax
dV = S((tt+1):tt:L) - S(((tt+1):tt:L)-tt);
VV = S(((tt+1):tt:(L+tt))-tt)';
N = length(dV)+1;
X = 1:N;
Y = VV;
mx = sum(X)/N;
SSxx = sum(X.^2) - N*mx^2;
my = sum(Y)/N;
SSxy = sum(X.*Y) - N*mx*my;
cc(1) = SSxy/SSxx;
cc(2) = my - cc(1)*mx;
ddVd = dV - cc(1);
VVVd = VV - cc(1).*(1:N) - cc(2);
%figure
%plot(X,Y,'o')
%hold on
%plot(X,cc(1)*X+cc(2),'-r')
%figure
%plot(1:N-1,dV,'ob')
%hold on
%plot([1 N-1],mean(dV)*[1 1],'-b')
%plot(1:N-1,ddVd,'xr')
%plot([1 N-1],mean(ddVd)*[1 1],'-r')
for qq=1:lq
mcord(tt,qq)=mean(abs(ddVd).^q(qq))/mean(abs(VVVd).^q(qq));
end
end
mx = mean(log10(x));
SSxx = sum(log10(x).^2) - Tmax*mx^2;
for qq=1:lq
my = mean(log10(mcord(:,qq)));
SSxy = sum(log10(x).*log10(mcord(:,qq))') - Tmax*mx*my;
H(k,qq) = SSxy/SSxx;
end
end
%figure
%loglog(x,mcord,'x-')
mH = mean(H)'./q(:);
if nargout == 2
sH = std(H)'./q(:);
elseif nargout == 1
sH = [];
end
In a folder, I have 20 Excel files having 2 columns in each file.
The first column represents the date whereas the 2nd column represents the time series.
Further, I want to calculate the monthly average of the estimated values for each time series.
Please help me to loop this function, and take the monthly average of the estimated values over all the files in a folder.
Thank you.
4 Comments
Image Analyst
on 23 Oct 2019
What did you pass in for S,q,maxT? Whic variable is the "estimated" values?
Answers (0)
See Also
Categories
Find more on Loops and Conditional Statements in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!