【数学建模 | 快速入门(上)】笔记----(P24-P25)

P24 MATLAB导入数据

最常用的就是导入excel表格数据,主页选项卡-导入数据-选择excel文件。

导入的范围

  • 导入数据的范围默认是从第二行开始的,第一行一般是标题行。
  • 如果不想导入所有数据,可以按住ctrl键,选择想导入的内容,例如某行、某列。
  • “变量名称行”也就是导入之后,matlab里表格最上方会显示变量,一般默认选择原文件第一行。但是只能识别英文,如果是汉字则变成“VerName”。

 导入类型

“输出类型”决定了导入的数据以什么类型存储。一般选择表。如果选择“数值矩阵”,那么所有字符串都变成NaN,反之亦然。

 注意,导入后数据在工作区。关闭matlab后数据消失。如果想保存数据的话,记得保存工作区文件!

处理无法导入的数据

例如设置输出类型为“数值矩阵”,那么表格里的字符串怎么办?

  • 选择替换,则所有字符串都变成NaN
  • 选择排除行,那么某一行只要有字符串,这一行数据都不会被导入选择排除列,同上

 P25 MATLAB处理缺失值和异常值

清理缺失数

实时编辑器,选择任务>清理确实数据

首先,先写一组包含缺失值和异常值的例子

x = 1:100;
%构造一个数组,元素为1,2,3,......100
%randn( 1,100)意味着生成一个1行100列的矩阵
%矩阵元素的均值为0,方差a^2 =1,且是正态分布的随机数
data = randn(1,100); I
data(20:20:80) = NaN;%设置第20,40,60,80个元素为缺失值
% data的值都是在0附近的,设置4个异常值
data(10) = -50;
data(40) = 45;
data(70) = -40;
data(90) = 50
plot(x,data)

MATLAB运行之后发现有四个异常值和三个缺失值。 

 接着处理缺失值和异常值。

% 填充缺失数据
[cleanedData,missingIndices2] = fillmissing(data,'spline');

% 显示结果
clf
plot(cleanedData,'Color',[0 114 189]/255,'LineWidth',1.5,'DisplayName','清理的数据')
hold on

% 绘制填充的缺失条目
plot(find(missingIndices2),cleanedData(missingIndices2),'.','MarkerSize',12,...
    'Color',[217 83 25]/255,'DisplayName','填充的缺失条目')
title(['填充的缺失条目数: ' num2str(nnz(missingIndices2))])

hold off
legend
clear missingIndices2

 

% 填充离群值
[cleanedData2,outlierIndices] = filloutliers(cleanedData,'linear');

% 显示结果
clf
plot(cleanedData2,'Color',[0 114 189]/255,'LineWidth',1.5,'DisplayName','清理的数据')
hold on
title(['离群值数: ' num2str(nnz(outlierIndices))])

% 绘制填充的离群值
plot(find(outlierIndices),cleanedData2(outlierIndices),'.','MarkerSize',12,...
    'Color',[217 83 25]/255,'DisplayName','填充的离群值')

hold off
legend
clear outlierIndices

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值