📄 minvar.m
字号:
%minvar.m
%函数功能:已知n个数据中挑选出方差最小的k个数据
%x是一个向量,k是小于等于向量x长度的正标量
%返回值是y是x中反差最小的k个数据,i是y的元素在x向量中的下标
function [y,i]=minvar(x,k)
if(isvector(x)==0), %输入数据检查
disp('输入数据x必须是向量!');
return;
end;
if(isscalar(k)==0)
disp('输入数据k必须是标量!');
return;
end;
if(k<=0||k>length(x)),
disp('输入数据k必须是是小于等于向量x长度的正标量!');
return;
end;
k=floor(k); %把k截断为整数
[x_sort index]=sort(x); %对数据x排序
n=length(x); %数据x的长度
for i=1:(n-k+1), %对排好序的数据求所有相邻k个值
std_x_sort(i)=std(x_sort(i:(i+k-1))); %的标准方差
end;
[min_std_x_sort j] = min(std_x_sort); %求最小的相邻k个值的标准方差和下标
i=index(j:(j+k-1)); %求最小标准方差的相邻k个值在向量x
%中的方差
y=x(i); %求最小标准方差的k个值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -