在MATLAB中规范化向量

时间:2017-11-06 11:48:18

标签: matlab signal-processing

我有一系列向量,我想在0和0之间进行归一化。 1.到目前为止,我已将数据重新采样到10kHz,然后去除噪声并创建辅助信号以显示能量的变化。

我的下一个任务是规范化所述向量,为此我使用" normc"但我仍然无法将我的列值归一化到0和0之间。 1.我能做些什么来完成我的任务?

2 个答案:

答案 0 :(得分:0)

如果我们讨论列向量和L2规范,那么应该这样做:

    a = a ./ repmat(sqrt(sum(a.^2)),size(a,1),1)

答案 1 :(得分:0)

normc只取列向量并使它们在欧几里得范数中的长度为1。如果您尝试缩放数据以使所有单个值介于0和1之间,则相当简单。

如果您的数据范围为[a,b],并且您希望将其缩放到[0,1]范围,则需要按a换算并除以(b-a)

调用A列向量矩阵,其中包含n行和m列。我认为以下内容应该有效:

A_min = repmat(min(A,[],1),n,1);
A_max = repmat(max(A,[],1),n,1);

A_scaled = (A - A_min)./(A_max-A_min);

如果您想沿着列进行缩放,您可以这样做:

A_min = repmat(min(A,[],2),1,m);
A_max = repmat(max(A,[],2),1,);

A_scaled = (A - A_min)./(A_max-A_min);
相关问题