测井数据的聚类算法分段分层及图例
%在智能钻井研究工作中,对测井等各种随深度变化的数据进行聚类分析,是十分有用的一个数据处理方法。
%处理的数据主要是测井数据
% nepu liw 2017年9月3日
clc;clear;
Logdata=importdata('z_ho30.txt','\t'); %读入数据
[col,~]=size(Logdata); %获取行列
Logdata1=Logdata;
maxclust=4; %最大分类
row=4; %确定行数
Deep=Logdata1(:,1);
Logdata(:,row)=smooth(Logdata(:,row),10,'loess'); %对选定数据列进行平滑处理
H=clusterdata(Logdata(:,row),'linkage','average','maxclust',maxclust); %对数据聚类
for ii=1:maxclust
% disp(Logdata(H==1,2));
row_mean=mean(Logdata1(H==ii,row)); %选择某一类进行平均处理
Logdata1(H==ii,row)=row_mean; %平均值赋值相应位置
% disp(['Den_mean=',Den_mean]);
end
% disp(Logdata1(H==1,row));
plot(Deep,Logdata(:,row),'k','linewidth',1.5);hold on;
plot(Deep,Logdata1(:,row),'b','linewidth',2);
计算图例:
作者:LiW