精华内容
下载资源
问答
  • 2021-04-21 09:49:42

    img_out = repmat(img,[10000 1]);%生成一个1万行的img矩阵

    img=zeros(1,1024); %zeros生成为0的矩阵,其中1024为列数, matlab中若想列出所有列的内容,就直接用:(冒号)即可

    tic+toc;%计算程序消耗的时间

    dir:

    列出文件夹内文件的内容,只要列出的文件夹中有一个子文件夹,则其实代表了有至少有3个子文件夹。其中的’.’和’..’表示的是当前目录和上一级的目录。

    load:

    不加括号的load时不能接中间变量,只能直接给出文件名

    sparse:

    这个函数中参数必须为正数,因为负数或0是不能当下标的。

    random:

    该函数和常见的rand,randi,randn不同,random可以产生各种不同的分布,其不同分布由参赛name决定,比如二项分布,泊松分布,指数分布等,其一般的调用形式为: Y = random(name,A,B,C,[m,n,…])

    circshift:

    该函数是将矩阵循环平移的函数,比如说B = circshift(A,shiftsize)是将矩阵A按照shiftsize的方式左右平移,一般hiftsize为一个多维的向量,第一个元素表示上下方向移动(更准确的说是在第一个维度上移动,这里只是考虑是2维矩阵的情况,后面的类似),如果为正表示向下移,第二个元素表示左右方向移动,如果向右表示向右移动。

    matlab针对图片的白化操作,还包括了PCA白化和ZCA白化。详细可见下面这个博文:UFLDL教程笔记及练习答案二(预处理:主成分分析和白化)

    http://www.voidcn.com/article/p-ewrbnymv-zx.html

    更多相关内容
  • matlab数据预处理

    千次阅读 2021-11-12 16:48:38
    参考链接:(19条消息) 【Matlab】怎么实现数据归一化与标准化?_YaoYee_21的博客-CSDN博客_matlab实现数据归一化https://blog.csdn.net/YaoYee_21/article/details/109329393 关于归一化和标准化网上资料很多,但是...

    导入后往往需要对数据进行归一化或标准化处理

    参考链接:(19条消息) 【Matlab】怎么实现数据归一化与标准化?_YaoYee_21的博客-CSDN博客_matlab实现数据归一化icon-default.png?t=LA92https://blog.csdn.net/YaoYee_21/article/details/109329393

    关于 归一化 和 标准化 网上资料很多,但是没用统一的定义

    在这里插入图片描述

     mapminmax 函数默认是对行进行归一化操作,所以需要将每一行作为样本特征

    在应用于机器学习的输入时,要 对训练集与测试集一起归一化或标准化,也可以判断数据集划分是否合理

    data = xlsread('dataset.xlsx');            % 读数据
    [minMaxData,~] = mapminmax(data');         % 归一化
    minMaxData = minMaxData';               % 行列转置
    zScoreData = zscore(data);                % 标准化
     

    展开全文
  • 光谱数据预处理 超级全 都可以用 自己用的
  • MATLAB数据预处理之缺失值插补

    千次阅读 多人点赞 2021-03-15 09:38:51
    文章目录前言1 加载原始数据2 查找缺失值并填充缺失值总结 前言    现实中采集的原始数据不一定满足预测模型的需求,往往在使用之前需要对原始数据进行处理,使得采集的原始数据满足需求,本文主要做的是数据...


    前言

       现实中采集的原始数据不一定满足预测模型的需求,往往在使用之前需要对原始数据进行处理,使得采集的原始数据满足需求,本文主要做的是数据缺失处理方法。

    1 加载原始数据

    load('pm25data.mat')% 原始数据
    figure
    t = datetime(2010,1,2,0,0,0) + hours(0:length(pm25data)-1)';% 创建与数据对应的时间向量。
    plot(pm25data)% 查看波形
    title('原始数据波形')
    xlabel('Time/h');
    ylabel('PM_{2.5} / (\mu g.m^{-3})');
    

       如下图所示,可以看到原始数据波形有缺失部分
    在这里插入图片描述

    2 查找缺失值并填充缺失值

    % -------------------------------------------------------------------------
    % 查找缺失值
    % -------------------------------------------------------------------------
    TF1=ismissing(pm25data);% 查找缺失值,TF是逻辑矩阵,利用TF可以找到pm25data内的缺失值
    %     plot(t,TF1,'*') % TF中的1对应pm25data中的缺失值
    %     pm25data(TF1) % 显示缺失值位置
    TF = TF1;
    % -------------------------------------------------------------------------
    % 填充缺失值 (pm25dataPre是插补后的数据)
    % -------------------------------------------------------------------------
    pm25dataPre = pm25data;
    t = datetime(2010,1,2,0,0,0) + hours(0:length(pm25data)-1)';% 创建与数据对应的时间向量。
    while max(TF) % 如果还存在缺失值就继续插补
        % pm25data = fillmissing(pm25data,'movmean',30);% 使用窗口长度为 30 的移动均值填充缺失数据。
        pm25dataPre = fillmissing(pm25dataPre,'movmedian',30); % 使用窗口长度为 30 的移动中位数替换数据中的 NaN 值 
        TF=ismissing(pm25dataPre);% 查找数据中的缺失值,TF是逻辑矩阵,利用TF可以找到pm25data内的缺失值
    end
    %     plot(TF) % TF中的1对应pm25data中的缺失值,当数据中的缺失值填充完时,可以看到TF的值全为0
    plot(t,pm25dataPre,t(TF1),pm25dataPre(TF1),'x')% 查看插补后的数据 pm25dataPre
    title('插补后的数据波形')
    xlabel('Time/h');
    ylabel('PM_{2.5} / (\mu g.m^{-3})');
    legend('原始数据','插补值')    
    %     save('pm25dataPre.mat','pm25dataPre');% 保存插补后的数据
    

    可以看到数据缺失部分,已被补全
    在这里插入图片描述


    总结

       以上就是今天要讲的内容,数据是pm2.5数据。如有不合理的地方还请指出。


    2021年4月5日09:51:56更新


    问:如何用缺失值的前两个值的平均值进行插补?

      对于一个一维向量 A = [x1,x2,x3,x4,x5,x6],其值如下表所示:

    Ax1x2x3x4x5x6
    Value5789

      可以看到x3和x6值缺失,对于x3进行插补,则
    x 3 = ( x 1 + x 2 ) / 2 = ( 5 + 7 ) / 2 = 6 x3 = {(x1+x2)}/{2} = (5+7)/2 = 6 x3=(x1+x2)/2=(5+7)/2=6
    同理
    x 6 = ( x 4 + x 5 ) / 2 = ( 8 + 9 ) / 2 = 8.5 x6 = {(x4+x5)}/{2} = (8+9)/2=8.5 x6=(x4+x5)/2=(8+9)/2=8.5
    故插值后,可得

    Ax1x2x3x4x5x6
    Value576898.5

    MATLAB程序实现:
    (注意:double 类型数据缺失值指示符为NaN)

    	A = [5,7,NaN,8,9,NaN] 
    	F = fillmissing(A,'movmean',[2,0])
    

    运行结果:
    在这里插入图片描述

      有一点需要注意,如果第一个元素为NaN,则无法对其进行插补。
    例如:

    	A = [NaN,5,7,NaN,8,9,NaN]
    	F = fillmissing(A,'movmean',[2,0])
    

    在这里插入图片描述


    问:如何用缺失值的前一个值和后一个值的均值进行插补?

    MATLAB程序实现:

    	A = [5,NaN,7,NaN,3];
    	F = fillmissing(A,'movmean',3)
    

    运行结果:
    在这里插入图片描述

      道理很简单,分析方法和上文相同,诸君可以试着自己分析一下。


    2021年5月18日10:46:15更新


      有的人可能不会加载数据,针对这个问题,我进行了更新,上文中用到的数据源1,在本次更新中会给出。程序运行后,会自动下载数据2,然后读取数据3,最后直接运行出结果。

    clear;clc;close all;
    %% 下载数据
    
        api = 'https://archive.ics.uci.edu/ml/machine-learning-databases/00381/';
        url = [api 'PRSA_data_2010.1.1-2014.12.31.csv'];
        filename = 'DataSet.csv';
        options = weboptions('Timeout',Inf); % 将超时值设置为 Inf 以使连接不会超时。
        outfilename = websave(filename,url,options); % 数据下载,保存在DataSet.csv中
    %% 读取表格数据
    
        AllData = readmatrix(filename); 
        pm25data = AllData(25:43824,6); % 读取pm2.5数据
        save("pm25data.mat","pm25data") % 保存数据
    %% 加载原始数据  
    
        load('pm25data.mat')% 原始数据
        figure
        subplot(211)
    	t = datetime(2010,1,2,0,0,0) + hours(0:length(pm25data)-1)';% 创建与数据对应的时间向量。
        plot(t,pm25data)% 查看波形
        title('原始数据波形')
        xlabel('Time/h');
        ylabel('PM_{2.5} / (\mu g.m^{-3})');
    %% 查找缺失值
    
        TF1=ismissing(pm25data);% 查找缺失值,TF是逻辑矩阵,利用TF可以找到pm25data内的缺失值
        TF = TF1;
    %% 填充缺失值 (pm25dataPre是插补后的数据)
    
        pm25dataPre = pm25data;
        while max(TF) % 如果还存在缺失值就继续插补
            % pm25data = fillmissing(pm25data,'movmean',30);% 使用窗口长度为 30 的移动均值填充缺失数据。
            pm25dataPre = fillmissing(pm25dataPre,'movmedian',30); % 使用窗口长度为 30 的移动中位数替换数据中的 NaN 值 
            TF=ismissing(pm25dataPre);% 查找数据中的缺失值,TF是逻辑矩阵,利用TF可以找到pm25data内的缺失值
        end
        % plot(TF) % TF中的1对应pm25data中的缺失值,当数据中的缺失值填充完时,可以看到TF的值全为0
        subplot(212)
        plot(t,pm25dataPre,t(TF1),pm25dataPre(TF1),'x')% 查看插补后的数据 pm25dataPre
        title('插补后的数据波形')
        xlabel('Time/h');
        ylabel('PM_{2.5} / (\mu g.m^{-3})');
        legend('原始数据','插补值')
        % save('pm25dataPre.mat','pm25dataPre');% 保存插补后的数据
    

    运行结果:
    在这里插入图片描述

    参考资料:


    1. UCI Machine Learning Repository: Data Sets. ↩︎

    2. 将 RESTful Web 服务中的内容保存到文件 - MATLAB websave - MathWorks 中国. ↩︎

    3. 从文件中读取矩阵 - MATLAB readmatrix - MathWorks 中国. ↩︎

    展开全文
  • matlab的常用数据预处理代码

    千次阅读 2022-04-20 16:43:00
    matlab的常用数据预处理代码

    声明:部分代码或描述可能不是很完美,希望理解并加以支持。

    这里以红酒品质数据为例,加以说明:

    第一部分:重复值剔除

    使用 unique 函数,这里仅列出常用的两种使用方式:

    第一种:直接删除重复行

    red = readmatrix('winequality.xlsx','Sheet','winequality-red','Range','A2:L1600');
    % 数据读取
    dataRed = unique(red,'rows');
    % 删除数据中重复行数据,默认对原有数据排序(这里剔除937组重复值)
    dataRed = unique(red,'rows','stable');
    

    第二种:按列删除重复行

    [C,ia,ic] = unique(dataRed(:,1:2),'rows');
    % 基于前两列的数据查找dataRed中的唯一行。
    % 指定三个输出以返回索引向量 ia 和 ic。
    uA = dataRed(ia,:)
    使用 ia 对 dataRed 进行索引并检索包含前两列中元素的唯一组合的行。
    

    第二部分:异常值处理

    异常值处理的方式有很多,这里举例说明:

    % 数据平滑
    Amedian = smoothdata(dataRed,'movmedian');
    

    补充说明几种平滑处理方法,指定为以下选项之一:

    'movmean'  的每个窗口内的移动平均值。此方法对于减少数据中的周期性趋势很有用。

    'movmedian' 的每个窗口内的移动中位数。当存在离群值时,此方法对于减少数据中的周期性趋势很有用。

    'gaussian' 的每个窗口内的高斯加权移动平均值。

    %% 查找离群值
    TF = isoutlier(dataRed); 
    %查找数据向量中的离群值。输出中的逻辑值 1 表示离群值的位置。
    ind = find(TF) 
    %查找非零元素
    Aoutlier = dataRed(ind) 
    %输出离群值
    
    %% 离群数据填充
    Afill = filloutliers(dataRed,'next'); 
    %采用下一时刻数据进行填充,同样这里也可以使用均值、中心值等
    

    2022年4月20日16:54:19

    展开全文
  • MATLAB统计分析-数据预处理

    千人学习 2019-09-04 20:35:32
    MATLAB数据分析之数据预处理,包括缺失值的处理、异常值的处理、数据平滑和数据变换。
  • Matlab 神经网数据预处理的函数poststd 后处理由 PRESTD 预处理的数据在 R2006a NNET 5.0 中已经过时最后用于 R2005b NNET 4.0.6句法[p,t]=poststd(pn,meanp,stdp,tn,表示,stdt)[p]=poststd(pn,meanp,stdp)描述...
  • Matlab 数据 预处理(1)——插值

    千次阅读 2019-08-12 13:03:31
    因此数据预处理也就变得格外重要! 首先,需要明白插值问题和拟合的区别和联系 联系 虽然两者都是根据实际中一组已知数据来构造一个能够反映数据变化规律的近似函数的方法。 区别 拟合需要得到近似函数...
  • matlab数据预处理

    2014-04-05 10:39:58
    matlab数据预处理,亲测改程序可用
  • 针对脏乱差的原始数据采取的清洗预处理措施:截断法去除首尾无效数据数据降采样加速后期特征提取的计算、hample 滤波去除信号数据中存在的骤升尖峰和骤降谷底这类异常值。 FFT变换中常见处理还有去均值与信号补零....
  • matlab数据预处理

    千次阅读 2019-07-06 15:39:48
    为什么要进行数据预处理 我们采集到的数据很有可能有很多错误的信息,同时需要对不同性质的信息进行比较,因此,在做数据分析之前,必须进行数据预处理。 1.Min-max标准化 min-max标准化方法是对原始数据进行...
  • 主要工作是删除原始数据集中的无关数据、重复数据、平滑噪声数据,筛选掉与挖掘主题无关的数据,处理缺失值、异常值等。 缺失值处理 异常值处理 数据集成 数据变换 数据规约 主要处理函数 ...
  • 在本次提交中,我们演示了如何在 MATLAB 中处理和清理存储在 Excel 工作表中、以多种格式和多种采样率存储的时间序列数据。 我们从使用“导入工具”从 Excel 表格导入数据开始。 接下来,我们关注如何准备数据以转换...
  • matlab数据的读入和预处理,含源程序。matlab数据的读入和预处理,含源程序。
  • 我们在进行数据分析时,往往会发现数据具有很多种属性,比如某类型饼干的口味、加工方式、保质期、价格、购买人群等等。每一种属性就代表该数据在某一维度上的数值。多维度的数据无疑会增加数据的准确性与可靠性,但...
  • 输入/输出数据预处理尺度变换尺度变换也称归一化或标准化,是指通过变换处理将网络的输入/输出数据限制在[0,1]或[-1,1]区间内。进行尺度变换的原因有:(1)网络的各个输入数据常常具有不同的物理意义和不同的量纲。...
  • 自己常用的程序 解压直接可用,各种光谱数据预处理代码matlab 预处理 光谱数据 平滑求导 中心化散射校正
  • matlab数据进行预处理(缺失/异常/平滑等)

    万次阅读 多人点赞 2020-07-28 10:50:53
    在数据处理方面,经常需要使用到matlab软件,matlab可以对数据进行数据缺失和离散值处理,去除平滑和去除线性趋势,数据组合等,针对这些都有很...数据预处理如果要筛选去除李群智,你可以使用函数isoutlier将数据中的
  • Matlab数据预处理.ppt

    2021-04-21 04:20:35
    Matlab数据预处理.ppt》由会员分享,可在线阅读,更多相关《Matlab数据预处理.ppt(33页珍藏版)》请在人人文库网上搜索。1、2020/8/16,数据的预处理,教 材,2020/8/16,主要内容 数据的平滑处理 数据的标准化变换...
  • 实现对数据的平滑、去噪处理,得到平滑后的数据
  • Matlab读取数据预处理

    千次阅读 2020-06-28 20:33:37
    Matlab读取数据预处理 I=xlsread(‘C:\Users\Administrator\Documents\MATLAB\1.xlsx’);%读取xlsx文件 I=csvread(‘C:\Users\Administrator\Documents\MATLAB\2.xlsx’);%读取csv文件 label = I(:,end);%类别标签...
  • matlab smooth数据预处理

    2018-08-01 22:45:00
    数学建模数据预处理smooth函数应用及代码详解。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,482
精华内容 4,992
关键字:

matlab数据预处理

matlab 订阅