资源简介
MF-DFA程序,可批量下载.dat文件,修改文件名后可直接运行
代码片段和文件信息
%% 批量读取dat文件,存放在矩阵signals(k*N)中,矩阵的每一行表示一组数据
N=1024*10; %分析数据长度
filepath=‘D:\matlab程序\Readdat\datas‘;
b=strcat(filepath‘\*.dat‘);
datfile=dir(b);
k=size(datfile1); %文件夹中的文件数
signals=[];
for i=1:k
path=strcat(filepath‘\‘datfile(i).name);
fid=fopen(path);
if(fid==-1)
disp(‘警告:文件无法打开,请检查文件名及路径是否正确‘)
else
signals(:i)=fread(fidN+90‘int16‘);
% signals=[dataarray;data];
% disp(length(dataarray));
end
end
signals=signals(91:N+90:)‘;
%% 初始化,参数赋值。
% N=1024*10; %分析数据长度
% fid=fopen(‘0.4\i4g8.dat‘‘r‘);%读取.dat文件
% x_x=fread(fidN+90‘int16‘);
scmin=100;
scmax=1000;
scres=91;
exponents=linspace(log2(scmin)log2(scmax)scres);
scale=round(2.^exponents);
q=linspace(-55101);
m=[1 2 3];
set(0‘RecursionLimit‘1500);
% signal=x_x(1:N1);
%% 构造累积时间序列,并计算标度指数 tq-------------------------------------------------------------------------
for j=1:3
for i=1:k
X=cumsum(signals(i:)-mean(signals(i:)));
if min(size(X))~=1||min(size(scale))~=1||min(size(q))~=1;
error(‘Input arguments signal scale and q must be a vector‘);
end
if size(X2)==1; %返回列数
X=transpose(X); %转置,X为行向量
end
if min(scale) error(‘The minimum scale must be larger than trend order m+1‘)
end
for ns=1:length(scale) %标度范围——n
segments(
- 上一篇:K-CCA MATLAB 代码
- 下一篇:matlab聚类工具箱
评论
共有 条评论