Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2009-08-15
住址: 武昌
帖子: 3
声望力: 0 ![]() |
![]()
在编写一个程序的过程中,我明显定义一个向量的维数为N1=10,但经过中途程序赋值后,输出的结果维数却远大于N1,倒与N2维数一样,部分程序如下,希望得到达人的帮助,谢谢!
%%%%%% main %%%%%%%% clear tt=cputime; N0=0; global N; global alpha; global coef; global NS_1; global NS_2; N=25; % number of subintervals alpha=.7; coef=.5; N1=10; NS_1=zeros(N1,1); NS_2=zeros(N1,1); N2=2000; for i=1:N1 x=rand(1,1); if x>=0.5 TSP; d=index(X1,i); if d==0 N0=N0+1; end else DSP; d=index(X2,i); if d==1 N0=N0+1; end end end NS_1 NS_2 percentage=N0/N1; percentage tt=cputime-tt function d=index(X,i) global NS_1; global NS_2; %%%%%%%%%%%%%%%%%%%%%%%%%%% 估计a、b %%%%%%%%%%%%%%%%%%%%%%%%%%% size_X=length(X); T1=zeros(size_X,1); for i=1:size_X T1(i)=i; end P1=polyfit(T1,X,1); %%%%% curve-fitting coefficient%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% a_estimate=P1(1,1); b_estimate=P1(1,2); %%%%%%%%%%%% 在原数据中减去a+bt,即X(t)-(a_estimate+b_estimate*t),记为Y(t) %%%%%%%%%%%%%%%%%% Y1=zeros(size_X,1); for t=1:size_X Y1(t)=X(t)-(a_estimate+b_estimate*t); end Y1; %%%%%%%%%%%%%% The_original_entropy01=The_original_entropy(Y1); The_entropy_is_one=The_entropy_is(Y1); NS1=The_original_entropy01/The_entropy_is_one; NS_1(i)=NS1 %%%%%%%%%%%%%%% 计算y(t):=X(t)-X(t-1),估计其均值Ey,计算Y2(t):=y(t)-Ey的非平稳程度%%%%%%%% y=zeros(size_X,1); for k=2:size_X y(k)=X(k)-X(k-1); end sum=0; for i=2:size_X sum=sum+y(i); end Ey=sum/size_X; Y2=zeros(size_X,1); for j=2:size_X Y2(j)=y(j)-Ey; end The_original_entropy02=The_original_entropy(Y2); The_entropy_is_two=The_entropy_is(Y2); NS2=The_original_entropy02/The_entropy_is_two; NS_2=NS2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%% 比较NS1与NS2,选择小的NS %%%%%%%%%%%%%%%%%%%%%%%%%%%%% d=0; if NS1<=NS2 d=d; else d=d+1; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% index_d=d; |
![]() |
![]() |