資源簡介
KNN的MATLAB實(shí)現(xiàn),基于特殊的SONAR數(shù)據(jù),M文件,MATLAB源代碼
代碼片段和文件信息
clear?all
close?all
clc
fid=fopen(‘fpcd.bin‘‘r‘);
orignaldata=fread(fid‘float32‘);%數(shù)據(jù)格式轉(zhuǎn)換
pixelarray=reshape(orignaldata30720084);
a=pixelarray(:50);
b=reshape(a476800);
z_lvbo=b(3:);
z_lvbo1=reshape(z_lvbo320240);
??K?=?medfilt2(z_lvbo1);
??b(3:)=reshape(K176800);
for?i=1:76800
???
????????if?b(3i)>0.535?||?b(3i)<0.3
????????????b(3i)=0;
????????????b(2i)=0;
????????????b(1i)=0;
????????end?
????????
????
end
for?i=1:76800
???
????????if?b(1i)>0.14
????????????b(3i)=0;
????????????b(1i)=0;
????????????b(2i)=0;
????????end?
???
end
for?i=1:76800
???
????????if?b(1i)<-0.2
????????????b(3i)=0;
????????????b(1i)=0;
????????????b(2i)=0;
????????end?
???
end
for?i=1:76800
???
????????if?b(2i)>0.14
????????????b(3i)=0;
????????????b(1i)=0;
????????????b(2i)=0;
????????end?
???
end
x=b(1:);
y=b(2:);
z=b(3:);
x(find(x==0))=[];
y(find(y==0))=[];
z(find(z==0))=[];??
Lx=size(x2);
A=zeros(Lx3);
A(:1)=x(1:);
A(:2)=y(1:);
A(:3)=z(1:);
[idx?dist]?=?knnsearch(AA‘dist‘‘euclidean‘‘k‘6);???%?尋找每一個(gè)三維點(diǎn)最近的4個(gè)點(diǎn)(除去其本身)
?b1=sum(dist2)/5;?%%最近鄰5個(gè)點(diǎn)的距離和
b2(:1)=b1(:1);
評(píng)論
共有 條評(píng)論