楼主: tiaotiaotang
1966 6

[问答] matlab循环出问题? [推广有奖]

  • 1关注
  • 3粉丝

准贵宾(季)

博士生

37%

还不是VIP/贵宾

-

威望
0
论坛币
2945 个
通用积分
0
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
4186 点
帖子
119
精华
0
在线时间
378 小时
注册时间
2007-12-14
最后登录
2019-5-17

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
麻烦大侠帮忙看看下面的程序有什么问题:
是算hurst的。
请问这个maxT是时间窗口吧?
我在窗口输入
H=genhurst(S,2,100)
为什么H只有一个值?是循环出问题了嘛?


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);%l表示的是观测值个数
lq = length(q);%这个值肯定是1?
loo=0;
ll = [];%赋值为空数组
H1 = [];
H2 = [];
H = [];
ttmm =[];
k = 0;
for Tmax=5:maxT % Tmat=初值:步长,但为什么从5开始呢?
k = k+1;
x = 1:Tmax;
ttmm(end+1)=Tmax;
mcord1 = [];
mcord2 = [];
for tt = 1:Tmax
dV = S((tt+1):tt:L) - S([(tt+1):tt:L]-tt);
VV = S([(tt+1):tt:(L+tt)]-tt)';
ll(tt)= length(dV);
N = ll(tt)+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:ll(tt)+1] - cc(2);
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
mH = mean(H)'./q(:);
if nargout == 2
sH = std(H)'./q(:);
elseif nargout == 1
sH = [];
end
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab Atl Lab function warning matlab 程序

沙发
fHJ5JAD0 发表于 2011-12-11 11:38:05 |只看作者 |坛友微信交流群
实至名归。

使用道具

藤椅
epoh 发表于 2011-12-11 16:03:52 |只看作者 |坛友微信交流群
% S is 1xT data series (T>50 recommended)
% specifies the exponent q which can be a vector (default value q=1)
% specifies value maxT of the scaling window, default value maxT=19
S=cumsum(randn(10000,1));
q=[1,2,3];
H=genhurst(S,q)
ans =

    0.5106
    0.5090
    0.5064
已有 1 人评分学术水平 信用等级 收起 理由
liuxin9023 + 1 + 1 分析的有道理

总评分: 学术水平 + 1  信用等级 + 1   查看全部评分

使用道具

板凳
tiaotiaotang 发表于 2011-12-11 19:51:14 |只看作者 |坛友微信交流群
epoh 发表于 2011-12-11 16:03
% S is 1xT data series (T>50 recommended)
% specifies the exponent q which can be a vector (default ...
这个结果我懂了,请问maxT是什么作用?

使用道具

报纸
epoh 发表于 2011-12-12 14:31:30 |只看作者 |坛友微信交流群
tiaotiaotang 发表于 2011-12-11 19:51
这个结果我懂了,请问maxT是什么作用?
当计算generalized Hurst exponent H时,
maxT是用来决定取样的窗宽范围
  http://en.wikipedia.org/wiki/Hurst_exponent
假设maxT=19,则Tmax=5,6,7,.....19.
    每个Tmax可以计算出一个 H value
    H'=[0.3604    0.4488    0.4660    0.4515    0.4511   
           0.4241    0.4009    0.3667    0.3632    0.3468   
           0.3507    0.3527    0.3560    0.3267    0.2995]
    mH = mean(H)'./q(:)
          = 0.3843
底下以S=cumsum(randn(100,1));q=[1];Tmax=5为例说明:
   Tmax=5:maxT
   Tmax=5
   x = 1:Tmax   % 1 2 3 4 5
   tt = 1:Tmax
   当tt=1,取样N=100 (1,2,3,.........100)
   当tt=2,取样N= 50 (1,3,5,.........100)
   当tt=3,取样N= 34 (1,4,7,.........100)
   当tt=4,取样N= 25 (1,5,9,.......... 97)
   当tt=5,取样N= 20 (1,6,11,.........96)
   计算出一个 H = 0.3604
同理类推当maxT=6
   Tmax=5:maxT
   Tmax=5
   x = 1:Tmax   % 1 2 3 4 5
   tt = 1:Tmax
   当tt=1,取样N=100 (1,2,3,.........100)
   当tt=2,取样N= 50 (1,3,5,.........100)
   当tt=3,取样N= 34 (1,4,7,.........100)
   当tt=4,取样N= 25 (1,5,9,.......... 97)
   当tt=5,取样N= 20 (1,6,11,.........96)
   
   Tmax=6
   x = 1:Tmax   % 1 2 3 4 6
   tt = 1:Tmax
   当tt=1,取样N=100 (1,2,3,.........100)
   当tt=2,取样N= 50 (1,3,5,.........100)
   当tt=3,取样N= 34 (1,4,7,.........100)
   当tt=4,取样N= 25 (1,5,9,......... 97)
   当tt=5,取样N= 20 (1,6,11,.........96)
   当tt=6,取样N= 17 (1,7,13,.........97)
   

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
tiaotiaotang + 1 + 1 + 1 热心帮助其他会员
zhangtao + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

使用道具

地板
tiaotiaotang 发表于 2011-12-12 20:02:31 |只看作者 |坛友微信交流群
epoh 发表于 2011-12-12 14:31
当计算generalized Hurst exponent H时,
maxT是用来决定取样的窗宽范围
  http://en.wikipedia.org/w ...
谢谢,。我仔细看看,消化消化
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
epoh + 1 + 1 + 1 研讨精神,值得赞赏.

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-22 12:37