精华内容
下载资源
问答
  • 什么是滑动均值滤波滑动平均滤波就是把连续取得的N个采样值看成一个队列,队列的长度固定为...具体的matlab代码clearclcload boxinfo.mat %载入音频数据T = data;figure(1)plot(T,'-*')title('原始数据')hold on;%%%...

    ce7dd8b051b185276a72c607927e96c2.png

    什么是滑动均值滤波

    滑动平均滤波就是把连续取得的N个采样值看成一个队列,队列的长度固定为N,每次采样得到一个新数据放到队尾,并丢掉原来队首的一次数据,把队列中的N个数据进行平均运算,就可以获得新的滤波结果。

    具体的matlab代码

    1. clear
    2. clc
    3. load boxinfo.mat %载入音频数据
    4. T = data;
    5. figure(1)
    6. plot(T,'-*')
    7. title('原始数据')
    8. hold on;
    9. %%
    10. %滑动平滑滤波
    11. L = length(T);
    12. N=10; % 窗口大下
    13. k = 0;
    14. m =0 ;
    15. for i = 1:L
    16. m = m+1;
    17. if i+N-1 > L
    18. break
    19. else
    20. for j = i:N+i-1
    21. k = k+1;
    22. W(k) = T(j) ;
    23. end
    24. T1(m) = mean(W);
    25. k = 0;
    26. end
    27. end
    28. plot(T1,'r-o')
    29. grid
    30. legend('原始数据','滤波之后')

    滤波前后对比图

    806585abd2a09b90f0dce5af6d52c69b.png

    简单分析一下

    经过滑动滤波之后,波形整体变得平滑,这里我们重点关注一下x轴附近的点,可以发现,在波形与x轴交叉的地方,波形都平稳过度,这极大方便的我们后期进行统计。

    窗口大小选择

    从代码中我们可以发现窗口大小我们选择的是10,如何选择窗口大小,这里我们需要进行一些简单的分析和测试。如果x轴附近的噪点数量(一上一下)比较多,那么窗口大小就应该大一些,反之,小一些。但是过大又会出现过拟合的现象,所以可以多取几个值,然后对比一下,选择一个最好的即可。

    不同的窗口大小对比图

    3a8c2f1e0f6198cab3328601b4569b8b.png

    简单分析一下

    从图中我们可以很明显的看出,当N=4的时候,滤波效果还不是很好,在x轴附近依然有噪点(一上一下),当N=7的时候,已经基本满足我们的要求,图形已经可以很平稳的过度了,但是从右边的标记处可以看出还是不是很平稳,所以可以继续提高N值,当N=10的时候,波形就完全能够达到我们的要求,所以取10即可。

    滑动平均(moving average):在地球物理异常图上,选定某一尺寸的窗口,将窗口内的所有异常值做算术平均,将平均值作为窗口中心点的异常值。按点距或线距移动窗口,重复此平均方法,直到对整幅图完成上述过程,这种过程称为滑动平均。

    滑动平均相当于低通滤波,在重力勘探和测井资料处理解释中常用此方法。 如果滑动窗长为n的话,滑动平均就是让数据通过一个n点的FIR滤波器,滤波器抽头系数都是1,这样取滑动平均就是起到序列平滑的作用。

    利用filter函数求滑动平均

    Matlab有多种计算滑动平均的方法,现介绍基于filter函数的计算方法。设原始数据为x,平均窗口设为a(a为正整数),那么无权重滑动平均后的数据y为:
    windowSize =a;
    y=filter(ones(1,windowSize)/windowSize,1,x);
    上述命令实际上计算的是:
    y(1)=(1/a)*x(1);
    y(2)=(1/a)*x(2)+(1/a)*x(1);
    ... ...
    y(a)=(1/a)*x(a)+(1/a)*x(a-1)+...+(1/a)*x(1);
    ... ...
    y(i)=(1/a)*x(i)+(1/a)*x(i-1)+...+(1/a)*x(i-a+1);
    ... ....
    可以看出,计算某一位置处的平均值时,窗口的前端位于该处。有时为了将窗口中部放在所计算的位置处,这样上述计算方式则变为(为叙述方便起见,设a为奇数):
    y(1)=(1/a)*x(1)+(1/a)*x(2)+...+(1/a)*x((a+1)/2);
    y(2)=(1/a)*x(1)+(1/a)*x(2)+...+(1/a)*x((a+1)/2+1);
    ... ...
    y((a+1)/2)=(1/a)*x(1)+(1/a)*x(2)+...+(1/a)*x((a+1)/2)+...+(1/a)*x(a);
    ... ...
    y(i)=(1/a)*x(i-(a-1)/2)+(1/a)*x(i-(a-1)/2+1)+...+(1/a)*x(i)+...+(1/a)*x(i+(a-1)/2);
    ... ...
    这种方式的滑动平均称为中心滑动平均,其Matlab的计算语句为:
    windowSize =a;
    y1=filter(ones(1,a/2+1)/windowSize,1,x);
    y2=filter(ones(1,a/2+1)/windowSize,1,fliplr(x));
    y=y1+fliplr(y2)-(1/a)*x;
    如利用1-2-1 滤波器计算有权重的中心滑动平均,其Matlab语句为:
    y1=filter([0.50.25],1,x);
    y2=filter([0.5 0.25],1,fliplr(x));
    y=y1+fliplr(y2)-0.5*x;

    展开全文
  • 1 清空工作空间 clear all close all clc 2 加载数据 把得到的实验数据和m文件放在同一个路径,然后add path 在m文件里写 data = load('***.mat') 3 自动记录并更新 diary diaryFilename = '*****_log....

    1 清空工作空间

    clear all
    close all
    clc
    

    2 加载数据

    把得到的实验数据和m文件放在同一个路径,然后add path

    在m文件里写 

    data = load('***.mat')

    3 自动记录并更新 diary

    diaryFilename = '*****_log.txt';
    diary off;
    if exist(diaryFilename, 'file') == 2
        delete(diaryFilename);
    end
    diary(diaryFilename);

    4 出多图的m文件,自动将出的图保存为 pdf jpg或 png文件

    save('results.mat', '数据a', '数据b', '数据c', ...
        '数据d');% 计算结果保存为result.mat 的struct中
    for f=findobj('Type', 'figure')'
        figFilename = ['figure_' num2str(f.Number) '.pdf'];
        fprintf('saving figure %s\n', figFilename);
        saveas(f, figFilename);
    end
    % figure 也可以保存起来,效果最好的是eps, 其次是 png

    5 在结尾写上 diary off;

    展开全文
  • 其中测试数据如下链接: https://pan.baidu.com/s/1Y7VcK6oWpHByKIYGCBJ5fw 密码: yma4测试结果如图测试代码如下:clcclear all %清空无用变量load spectra_data.mat %加载数据A=NIR';%对原来数据进行转置,使其符合...

    这段时间一直在学习机器学习相关知识,现利用MATLAB来编写一个RBF神经网络的应用。

    其中测试数据如下

    链接: https://pan.baidu.com/s/1Y7VcK6oWpHByKIYGCBJ5fw 密码: yma4


    测试结果如图


    测试代码如下:

    clc
    clear all %清空无用变量
    load spectra_data.mat %加载数据
    A=NIR';%对原来数据进行转置,使其符合神经网络输入
    B=octane';%同上
    temp=randperm(size(A,2));%获取样本总数随机排列序列
    P_train = A(:,temp(1:50));%截取学习数据
     T_train = B(:,temp(1:50));%截取学习结果
     P_test =A(:,temp(51:end));%截取测试数据
    T_test =B(:,temp(51:end));%截取测试结果
    N=size(T_test,2);%测试集的个数
    net=newrbe(P_train,T_train,30);%创建神经网络
    T_sim=sim(net,P_test);%训练网络
    error = abs(T_sim-T_test)./T_test;%错误值
    R2 = (N * sum(T_sim .* T_test) - sum(T_sim) * sum(T_test))^2 / ((N * sum((T_sim).^2) - (sum(T_sim))^2) * (N * sum((T_test).^2) - (sum(T_test))^2));
    figure%画图
    plot(1:N,T_test,'b:*',1:N,T_sim,'r-o')
    legend('真实值','预测值')
    xlabel('预测样本')
    ylabel('辛烷值')
    string = {'测试集辛烷值含量预测结果对比';['R^2=' num2str(R2)]};
    title(string)

    展开全文
  • 清空环境变量 clear all clc warning off %% II. 导入数据 load iris_data.mat %% % 1. 随机产生训练集/测试集 a = randperm(150); P_train = features(a(1:120),:); P_test = features(a(121:end),:); T_train = ...
    %% I. 清空环境变量
    clear all
    clc
    warning off
    %% II. 导入数据
    load iris_data.mat
    %%
    % 1. 随机产生训练集/测试集
    a = randperm(150);
    P_train = features(a(1:120),:);
    P_test = features(a(121:end),:);
    T_train = classes(a(1:120),:);
    T_test = classes(a(121:end),:);
    %% III. 创建随机森林分类器
    model = classRF_train(P_train,T_train);
    %% IV. 仿真测试
    [T_sim,votes] = classRF_predict(P_test,model);
    index = find(T_sim ~= T_test);
    accuracy = 1-length(index)/length(T_test)
    展开全文
  • GRNN RBF PNN 的matlab实现(学习笔记) 例子源自于...seid=2046861666796360058 RBF径向基神经网络 清空,导入数据数据 clear all clc 然后 load spectra_data.mat 进行数据的导入 生成训练...
  • LVQ神经网络的分类——乳腺肿瘤诊断 转载:《matlab神经网络30个案例分析》 具体算法原理,请查看书籍,此处显示代码部分: 下面展示一些 内联代码片 ...load data.mat %导入数据.mat格式 a = randperm(569);
  • 灰色关联分析 更新5

    2021-04-17 21:39:01
    load gdp.mat % 导入数据 一个6*4的矩阵 % 不会导入数据的同学可以看看第二讲topsis模型, %我们也可以自己在工作区新建变量,并把Excel的数据粘贴过来 % 注意Matlab的当前文件夹一定要切换到有数据文件的这个文件夹...
  • 灰狼优化算法——MATLAB

    千次阅读 2019-09-29 01:09:56
    2 %% 清空环境变量 3 close all 4 clear 5 clc 6 format compact 7 %% 数据提取 8 % 载入测试数据wine,其中包含的数据为classnumber = 3,wine:178*13的矩阵,wine_labes:178*1的列向量 9 load wine....
  • Contents I. 清空环境变量 II. 训练集/测试集产生 ...III. 数据归一化,BP 网络需要归一化处理 ...IV....V....VI....I. 清空环境变量 ...II....1. 导入数据 ...load spectra_data.mat 2. 随机产生训练集和测试...
  • Contents I. 清空环境变量II. 训练集/测试集产生III. 数据归一化IV. BP神经网络创建、训练及仿真测试V....I....load concrete_data.mat 2. 随机产生训练集和测试集 temp = randperm(size(attr
  • %% 清空环境 clc clear % %读取数据 load CHE2.mat %节点个数 inputnum=17; hiddennum=16; outputnum=1; % % %训练数据和预测数据 % % input_train=input(1:1900,:)'; % % input_test=input(1901:2000,:)'...
  • 清空环境变量 clear; clc; %% 2.导入数据 load citys_data.mat; %数据集的变量名为city %% 3.计算城市间相互距离 n=size(city,1); D=zeros(n,n); for i=1:n for j=1:n if i~=j D(i,j)=sqrt(sum((c...
  • 自组织映射网络在维基百科上讲的很清楚 ...中文网站这位大佬解释的很清楚: ...matlab实现SOM的代码如下: ...%% 清空环境变量 clc clear %% 录入输入数据 % 载入数据 load shiyandatda1990.mat; %转置后符合
  • %ART神经网络的数据分类—患者癌症发病预测%%清空环境变量clcclear%%录入输入数据%载入数据并将数据分成训练和预测两类loadgene.mat;data=gene;P=data(1:40,:);T=data(41:60,:);%转置后符合神经网络的输入格式P=P';T...
  • 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load water_data.mat %% % 2. 数据归一化 attributes = mapminmax(attributes); %% % 3. 训练集和测试集划分 % 训练集——35个样本 P_train...
  • 第四课 RBF、GRNN和PNN神经网络

    千次阅读 2019-11-06 09:05:33
    1 RBF神经网络 VS BP神经网络 径向基(radial basis functions,RBF)函数网络是以径向基函数为激活函数的人工神经网络,是一种线性组合。 RBF函数: RBF和BP同一个数据进行实验...load spectra_data.mat %% % 2...
  • %% 清空环境变量 clear all clc warning off %% 导入数据 load data.mat % 随机产生训练集/测试集 a = randperm(569); Train = data(a(1:500),:); Test = data(a(501:end),:); % 训练数据 P_train = Train(:,3:end)...
  • LVQ神经网络的分类

    千次阅读 2015-08-01 21:04:36
    %% 清空环境变量 clear all clc warning off %% 导入数据 load data.mat a=randperm(569); Train=data(a(1:500),:); Test=data(a(501:end),:); % 训练数据 P_train=Train(:,3:end)'; Tc_train=Train(:,2)'; T_train=...
  • [color][marker][line]ColorsMarkersLine Styles利用关键字作图(大概是数据映射到属性吧)传入类别控制线的属性Line2D的属性操作多figures和axessubplot(mnk)clf()清空当前figure, cla()情况当前axes.加入...
  • matlab基本知识

    2018-07-13 22:32:37
    clc:清空命令行窗口 clear:清楚workspace中的所有数据; close all:关闭所有的图形窗口; 结构体以指针的方式传递数据,元胞数组通过值传递。 结构体定义: 1、直接赋值:  A.b1=111;  A.b2=ones(3);  A.b3='...
  • 蚁群算法的优化计算

    2019-09-30 18:06:03
    %%清空环境变量 clear all clc %%导入数据 load citys_data.mat %%计算城市间相互距离 n = size(citys,1); D = zeros(n,n); %计算城市两两之间的距离 for i =1:n for j =1:n if i~=j D(i,j)=sqrt(sum...
  • %% 清空环境变量 clear all clc %% 导入数据 load citys_data.mat %% 计算城市间相互距离 fprintf('Computing Distance Matrix... \n'); n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:...
  • 蚁群算法

    2019-11-05 15:17:39
    %% 清空环境变量 clear all clc %% 导入数据 load citys_data.mat %% 计算城市间相互距离 fprintf('Computing Distance Matrix... \n'); n = size(citys,1); D = zeros(n,n); for i = 1:n for j = 1:n ...
  • matlab中使用SVM

    千次阅读 2018-01-15 13:11:48
    1 下载libsvm的源码 2 在matlab中编译 先输入:mex -setup选择编译器 再直接输入make编译 ...load iris_data.mat %% % 1. 随机产生训练集和测试集 n = randperm(size(features,1)); %% % 2. 训练集——120个样本 t
  • 清空环境变量 clear all; clc; %% 2.导入数据 load citys_data.mat; %% 3.计算城市间相互距离 n=size(citys,1); D=zeros(n,n); for i=1:n for j=i+1:n D(i,j)=sqrt(sum((citys(i,:)-citys(j,:)).^2)); D(...
  • 清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp = randperm(size(NIR,1)); % 训练集——50个样本 P_train = NIR(temp(1:50)...
  • 8 BP神经网络案例matlab参考代码

    千次阅读 2019-10-14 07:57:12
    清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp = randperm(size(NIR,1)); %打乱60个样本排序 % 训练集——50个样本 P_train ...
  • matlab bp神经网络的实现

    千次阅读 2018-05-28 22:52:41
    清空环境变量 clear all clc %% II. 训练集/测试集产生 %% % 1. 导入数据 load spectra_data.mat %% % 2. 随机产生训练集和测试集 temp = randperm(size(NIR,1)); % 训练集——50个样本 P_train = NIR(temp(1:50)...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

mat清空数据