0.4 数据处理

(23)如何删掉缺失值?

在MATALB中使用NaN(Not-a-Number)表示缺失值,如:

判断矩阵(向量)某一元素是否为NaN时不能使用如下方式:

需要使用isnan函数,使用如下方式可以删除缺失值:

运行结果为:

可以看到缺失值已经被删除了。

(24)如何将字符串转变为命令执行?

使用eval函数可以将字符串转变为命令执行,参考下例:

运行结果:

有时候巧妙地使用eval函数会使某些程序实现起来更加方便灵活。

(25)如何向一个向量追加元素?

这在MATLAB中实现非常容易,见下例:

运行结果:

(26)如何移除矩阵的某行(列)数据?

这涉及到MATLAB中矩阵的一些操作,见下例:

运行结果:

(27)如何比较两个矩阵是否相同?

比较每个元素是否相同,如果每个元素都相同,那么这两个矩阵也相同。可以使用循环来达到这一目的,但使用all函数可以更方便地实现这一目的,all函数会检查一个矩阵的每一列是否都为非零或者逻辑真,见下例:

运行结果:

(28)如何去掉数据中的重复元素?

参考unique函数,unique函数可以去掉矩阵中的重复元素。

运行结果:

(29)如何求数据的极值?

使用min和max函数可以求数据的极小值和极大值,见下例:

运行结果:

(30)如何求矩阵最大(小)值并返回其行列号?

主要有几种方式,见下面的实例:

运行结果如下:

(31)如何判断数据是否为数字?

参考isnumeric函数。

(32)如何从一组数据中随机抽取数据?

使用randsrc函数可以从一组数据中按照指定概率随机抽取数据,其用法之一如下:

是从alphabet数据中按照概率prob抽取数据生成一个m*n的矩阵,见下例:

即从[-3-1 1 3]中抽取数据生成5*5的矩阵,并且使得-3和3出现的概率为0.2,-1和1出现的概率为0.3,运行结果(由于是随机抽取数据,多次运行结果可能不同)为:

(33)如何将数据标准化?

使用zscore函数可以将数据标准化,这里标准化的定义是将数据减去其均值再除以其标准差,见下例:

运行结果: