How to create this by a for loop?
조회 수: 1 (최근 30일)
이전 댓글 표시
I have a question creating this for loop. This is what i have tried:
steps = 1:22:length(data.MKT);
for j = 2:length(steps)
avg(j-1,1) = mean(data.MKT(steps(j-1):(steps(j)-1)));
end
for k = 1: length(avg)
fbar = avg(k);
for i = 2:length(steps)
RV((i-1),1) = sum((data.MKT(i-1) - fbar).^2);
end
end
This is incorrect.
I believe it is correct to run it from 1:22 instead 1/22 : 1.
All help appreciated.
댓글 수: 2
답변 (1개)
Agnish Dutta
2019년 4월 10일
편집: Agnish Dutta
2019년 4월 10일
Assuming that the f_t+d values are in a 1-D array in contiguous locations, you could use the following code to get the required results:
% The variable arr is a 1-D array containing the
% required values in contiguous locations
res = 0;
t = 1;
for i = 1:22
res = res + (arr(t + i) - mean(arr(t + i : t + i + 22))).^2;
end
You will have to do some pre-processing on the data and store the needed values from "data.MKT" to the "arr". Just make sure that f_t corresponds to "arr(t)".
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!