在matlab中规范化mat文件

时间:2011-10-11 17:16:06

标签: matlab normalization

我有一个mat文件,其结构如下所示:

enter image description here

如何规范化数据并将其另存为.dat文件(ascii)

2 个答案:

答案 0 :(得分:5)

我假设你想要标准化每一列。

有两种方法可以规范化:

(1)将最小值设置为0,最大值设置为1

dataset = bsxfun(@minus,dataset,min(dataset));
dataset = bsxfun(@rdivide,dataset,max(dataset));

(2)将平均值设置为零,将标准差设置为1(如果没有统计工具箱,请分别使用meanstd进行减法和除法,如上所述。

dataset = zscore(dataset); 

修改

为什么有人使用选项2来规范化?

当您计算不同数据点之间的差异(相异性)时,您可能需要平均权衡不同的维度。由于具有较大方差的维度将主导不相似性度量,因此将方差归一化为1。

答案 1 :(得分:0)

您的规范化:

dataset = dataset-ones(size(dataset,1),1)*min(dataset) % subtract min
dataset = dataset ./ (ones(size(dataset,1),1)*max(dataset)+eps) % divide by max