我在Matlab中有一个表格,我想将数据归一化到0和1之间,这是我表格中的一行:
6 148 72 35 0 33.6000000000000 0.627000000000000 50
归一化数据的最佳方法是什么?是按每一列归一化好,还是将所有相关单元格一起归一化好?
编辑于2016年5月24日我只是需要将数据归一化以获得特定范围的值
回答:
归一化可以指(a) 将不同尺度上获得的数据进行调整以便进行比较,或者(b) 尝试将数据的统计分布调整到正态分布。
在这个数据集中,如果你必须进行归一化,那么应该按列进行。均值和方差在这里似乎是重要的特征。要按列归一化,可以这样做:
m = max(D); % D 是你的数据集矩阵normD = zeros(size(D)); % 这里是你的归一化值for i = 1:length(D) normD(:,i) = D(:,i)./m(i)end
更快的方法是无需循环:D./repmat(max(D),size(D,1),1)