MATLAB对数据的处理
1、MATLAB导入数据
最常用的就是导入excel表格数据,主页选项卡-导入数据-选择excel文件。
导入的范围
- 导入数据的范围默认是从第二行开始的,第一行—般是标题行。
- 如果不想导入所有数据,可以按住ctrl键,选择想导入的内容,例如某行、某列。
- “变量名称行"也就是导入之后,matlab里表格最上方会显示变量,一般默认选择原文件第一行。但是只能识别英文,如果是汉字则变成"VerName"。
导入类型
“输出类型"决定了导入的数据以什么类型存储。一般选择表。如果选择"数值矩阵”,那么所有字符串都变成NaN,反之亦然。
选择的选项 | 导入数据的方式 |
---|---|
列向量 | 将所选数据的每一列导入为单个m×1向量。 |
数值矩阵 | 将所选数据导入为m×n数值数组。其余类型可以缺省,删除。 |
字符串数组 | 将所选数据导入为m×n字符串数组。其余类型可以缺省,删除。 |
元胞数组 | 将所选数据导入为可包含多种数据类型的元胞数组。 |
表 | 将所选数据导入为表。(什么类型都可以保存) |
注意,导入后数据在工作区。关闭matlab后数据消失。如果想保存数据的话,记得保存工作区文件!
2、MATLAB处理缺失值和异常值
清理缺失数:
实时编辑器
-->选择任务
—>清理缺失数据
但是这个功能是在2019b以及之后的版本才有。
首先,先写一组包含缺失值和异常值的例子
x = 1 : 100;%构造一个数组,元素为1,2,3,.......108
%randn(1,10日)意味着生成一个1行1ee列的矩阵
%矩阵元素的均值为e,方差o^2 = 1,且是正态分布的随机数
data = randn(1,100) ;
data(20:20:80)= NaN;%设置第2e,40,6e,80个元素为缺失值
% data的值都是在e附近的,设置4个异常值
data(10) = -50;
data(40) = 45;
data(70) = -40;
data(90) = 50;
plot(x,data)
原本的数据:
在MATLAB中(在实时编辑器中才有这个功能,不然就将文件用实时编辑器的方式打开):
这样,数据里面的NaN数据就被清理了,选择里面的线性插值和压条插值都可以或其他选项。(原先的位置就被线性插值计算出来的数据替换掉了)。
同样,在任务中可以选择清理离群数据来将异常的值(我们带上面的代码中是手动设置的)进行清理。