📄 q3.m
字号:
function Q3
[N M G]=data2
%将开头的0,转还成100
Mlen = length(M);
for i=1:Mlen
if(sum(M(i,:))==0)
continue;
end
mark=0;
for j=1:13
if(M(i,j)==0)
if(mark==0)
M(i,j)=100;
end
else
mark=1;
end
end
end
%插值法
[m n]=size(M);
for k=1:m
if(sum(M(k,:))==0)%全部为0行,不处理
continue;
else
full=0;%标记是否到达100%
for j=1:n
if(M(k,n-j+1)==0 & full==0)
if(n-j~=n-1 & n-j~=0)%不是首尾的
if(M(k,n-j)==0)%两个连续的0
M(k,n-j+1)= M(k,n-j+2)
else
M(k,n-j+1)=(M(k,n-j+2)+M(k,n-j))/2;
end
end
else
if(M(k,n-j+1)==100)
full=1;
end
end
end
end
end
%计算每一个部分的百分比
for i=1:n-1
M(:,i)=M(:,i)-M(:,i+1);
end
clc;
%计算平均直径
D=M*N'/100;
%计算方差
for i=1:Mlen
mean=(N-D(i)*ones(1,n)).*M(i,:)/100;%%wrong
A(i)=dot(mean,mean);
%A(i)=(M(i,:)-D(i)*ones(1,n))'*(M(i,:)-D(i)*ones(1,n));
end
A = A';
%根据Gmm挑出数据完全的组合
[m n]=size(G);
Glen=0;
for i =1:m
if(G(i,1)~=0 & G(i,2)~=0)
Glen=Glen+1;
R(Glen,:)=[M(i,:) D(i) A(i) G(i,:)];
end
end
%plot(N,R(:,1:13));
%clear
x = min(N):0.02:max(N);
m=length(R);
for i=1:m
draw(i,:)=interp1(N,R(i,1:13),x,'cubic');
end
%y=interp1(N,R(1,1:13),x,'cubic');
plot(x,draw);
clc;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -