MATLAB实现四分位法

您所在的位置:网站首页 matlab数据排序代码 MATLAB实现四分位法

MATLAB实现四分位法

2023-09-20 12:04| 来源: 网络整理| 查看: 265

MATLAB实现四分位法 程序进行了更新,实测可用理论基础根据风速剔除风电功率故障的数据程序实现

程序进行了更新,实测可用 理论基础

四分位法是分析数据集分布特征的重要方法之一,是指通过 3 个数据点将一个按大小 顺序排好的数据样本序列平均划分成四部分的,每部分包含的数据量是整个序列数据量的 四分之一。 在这里插入图片描述 四分位法的理论如下图所示,参考刘芳《风电功率预测数据集的建立》的论文。她论文中的部分描述出错意见直接看张军凯《 风电功率预测算法研究》的理论部分。这里我懒得改了。 在这里插入图片描述

根据风速剔除风电功率故障的数据 程序实现 %% 按照新的论文进行编程 clc,clear,close all; % p=xlsread('treated_data.xlsx','fp'); p=xlsread('风速功率.xlsx','B2:C4001'); figure() scatter(p(:,1),p(:,2)) B=p(:,2); [a,b]=sort(B); oldlt=0; lengthdata=[]; p_b=40; %% 构造三维数组 for i=p_b:p_b:max(B) %% 将数据分成40块, lt=length(find(aQ3L+1.5*IRL); ia=fp_b(find(nnQ3L+1.5*IRL)); end end %% 对异常数据进行剔除 %% 还原到a的对应的标签值 if i ==1 IA=[IA;ia]; IB=[IB;ib]; else if length(ia)~=0 IA=[IA;sum(lengthdata(1:i-1))+ia]; end if length(ib)~=0 IB=[IB;sum(lengthdata(1:i-1))+ib]; end end end I = b([IA;IB]); p1=p(:,2); p1(I)=[]; p2=p(:,1); p2(I)=[]; % for i =1:length(I) % p1(I(i)) =(p(I(i)-1)+p(I(i)+1))/2; % end figure() scatter(p2,p1) %% 寻找中位数的函数 function zws = xunzhaozhongweishu(data) n = data; ln=length(n); if mod(ln,2)==0 %% 总数是偶数时 if ln~=0 Q2L=mean([n(ln/2),n(ln/2+1)]); end else if ln~=0 Q2L=mean(n((ln+1)/2)); end end zws = Q2L; end

在这里插入图片描述 实际应用时还需根据风电功率提出风速存在问题的,就根据处理后的数据将两者调换再处理一次即可。

参考文献 [1]刘芳. 基于改进BP神经网络的风电功率预测方法研究[D].浙江大学,2020. [2]张军凯, 风电功率预测算法研究 [D], 2019: 浙江大学.



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3