⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 minvar.m

📁 from start to grasp the matlab
💻 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 + -