怎么显示 LogRS(i), LogN(i),或者我希望以logN(i)为横轴,LogRS(i)为纵轴,怎么修改程序呢,请帮忙哈,谢谢,你的回答,我会感激的。
程序1
function [FactorMatrix,FactorNum]=HurstFactorization(Xtimes)
%hurstFactorization
%code by
ariszheng@gmail.com
%2008-10-07
%Xtimes表示的是研究的对象数目,总观测值
%floor朝负无穷大方向取整
%6表示的研究子样本的最小数目
N=floor(Xtimes/6);
FactorNum=0;
for i=6:N
if mod(Xtimes,i)==0
FactorNum=FactorNum+1;
FactorMatrix(FactorNum,:)=[i,Xtimes/i];
end
end
程序2
function HurstExponent=HurstCompute(Xtimes)
%HurstCompute
%code by
ariszheng@gmail.com
%2008-10-07
%example HurstExponent=HurstCompute(rand(1,240))
LengthX=length(Xtimes);
[FactorMatrix,FactorNum]=HurstFactorization(LengthX);
LogRS=zeros(FactorNum,1);
LogN=zeros(FactorNum,1);
for i=1:FactorNum
dataM=reshape(Xtimes,FactorMatrix(i,:));
MeanM=mean(dataM);
%将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。
%B 的维数是 [size(A,1)*m, (size(A,2)*n]
SubM =dataM - repmat( MeanM,FactorMatrix(i,1),1) ;
RVector=zeros(FactorMatrix(i,2),1);
SVector=zeros(FactorMatrix(i,2),1);
for j=1:FactorMatrix(i,2)
%SubVector=zeros(FactorMatrix(i,1),1);
%cumsum累加
SubVector=cumsum( SubM(:,j));
RVector(j)=max(SubVector)-min(SubVector);
SVector(j)=std( dataM(:,j) );
end
LogRS(i)=log( sum( RVector./SVector)/ FactorMatrix(i,2) );
LogN(i)=log( FactorMatrix(i,1) );
end
HurstExponent=polyfit(LogN,LogRS,1);
%testX=1:0.5:ceil(max(LogN));
%textY=polyval(HurstExponent,testX);
%plot(LogN,LogRS,'o',testX,textY)