如何用matlab将矩阵按列归一化

如何将这个矩阵按列归一化:A=[11/2433;21755;1/41/711/21/3;1/31/5211;1/31/5311]麻烦给出程序的写法... 如何将这个矩阵按列归一化:A=[1 1/2 4 3 3;2 1 7 5 5;1/4 1/7 1 1/2 1/3;1/3 1/5 2 1 1;1/3 1/5 3 1 1]

麻烦给出程序的写法
展开
 我来答
庹甜恬RQ

2021-03-23 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.2万
采纳率:94%
帮助的人:376万
展开全部
矩阵按列按行归一化到L2范数的原理和最精简Matlab代
模式识别和机器学习的数据预处理过程中,对数据集按行或者按列进行L2范数归一化是一种常见的归一化方式,因此本文将介绍对向量进行L2范数归一化的原理和方法,并给出相关的Matlab源代码,供后学者作为基础知识参考使用。

由此,我们可以很块的写出最简单的matlab源代码如下:

首先按行归一化:

% Examples

A=[3 4;5 12];

[m n] = size(A);

% normalize each row to unit

for i = 1:m

A(i,:)=A(i,:)/norm(A(i,:));

end

按列归一化:

% normalize each column to unit

A=[3 4;5 12];

for i = 1:n

A(:,i)=A(:,i)/norm(A(:,i));

end

然而,上述代码最能实现功能,但并不是最优的,它只是一种对该过程的最佳理解代码。在Matlab中,for循环是一件非常费时间的结构,因此我们在代码中应该尽量少用for循环。由此,我们可以用repmat命令得到另一种更加简洁更加快速的代码,只是这种代码对于初学者理解起来比较费劲。可以看错是自己水平的一种进阶吧。

% normalize each row to unit

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

% normalize each column to unit

A = A./repmat(sqrt(sum(A.^2,1)),size(A,1),1);
zhouw06
推荐于2017-11-26 · TA获得超过462个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:274万
展开全部
归一化是指列求和为1还是平方和为1?
vec = sum(A);%归一化后列求和为1
%vec = sum(A.^2);%归一化后列求平方和为1
[M,N] = size(A);

B = repmat(vec,M,1);
A = A./B;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2021-03-23 · TA获得超过1.8万个赞
知道大有可为答主
回答量:1.6万
采纳率:100%
帮助的人:597万
展开全部
矩阵按列按行归一化到L2范数的原理和最精简Matlab代码
在模式识别和机器学习的数据预处理过程中,对数据集按行或者按列进行L2范数归一化是一种常见的归一化方式,因此本文将介绍对向量进行L2范数归一化的原理和方法,并给出相关的Matlab源代码,供后学者作为基础知识参考使用。


由此,我们可以很块的写出最简单的matlab源代码如下:

首先按行归一化:

% Examples

A=[3 4;5 12];

[m n] = size(A);

% normalize each row to unit

for i = 1:m

A(i,:)=A(i,:)/norm(A(i,:));

end

按列归一化:

% normalize each column to unit

A=[3 4;5 12];

for i = 1:n

A(:,i)=A(:,i)/norm(A(:,i));

end

然而,上述代码最能实现功能,但并不是最优的,它只是一种对该过程的最佳理解代码。在Matlab中,for循环是一件非常费时间的结构,因此我们在代码中应该尽量少用for循环。由此,我们可以用repmat命令得到另一种更加简洁更加快速的代码,只是这种代码对于初学者理解起来比较费劲。可以看错是自己水平的一种进阶吧。

% normalize each row to unit

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

% normalize each column to unit

A = A./repmat(sqrt(sum(A.^2,1)),size(A,1),1);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
prkevin
2018-01-03 · TA获得超过6659个赞
知道小有建树答主
回答量:500
采纳率:100%
帮助的人:523万
展开全部
比如矩阵A,m*n维的,归一化到[a,b]区间
代码如下:
amax = max(max(A)); %求矩阵中最大数
amin = min(min(A)); %求矩阵中最小数
B = (A-amin)/(amax-amin)*(b-a)+a;
B即为归一化到[a,b]区间的矩阵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等等等等mery

2021-03-23 · TA获得超过6355个赞
知道大有可为答主
回答量:3.2万
采纳率:47%
帮助的人:1056万
展开全部
1. 行归一化

a=[1 2 3;4 5 6; 7 8 9];
%行归一化
v=sum(a,2);% 行求和
D=diag(v);% 生成以向量v为对角的对角矩阵
norm_a=D^-1*a;% norm_a即为行归一化矩阵

2. 列归一化

a=[1 2 3;4 5 6; 7 8 9];
%列归一化
v=sum(a);% 列求和
D=diag(v);% 生成以向量v为对角的对角矩阵
norm_a=a*(D^-1);% norm_a即为列归一化矩阵
数据矩阵单位化
方法一:
%%矩阵的列向量单位化
%输出矩阵Y为单位化矩阵
%方法即是矩阵中所有元素除以该元素所在列向量的二范数
clc;
clear;
X=[790 3977 849 1294 1927 1105 204 1329
768 5037 1135 1330 1925 1459 275 1487
942 2793 820 814 1617 942 155 976
916 2798 901 932 1599 910 182 1135
1006 2864 1052 1005 1618 839 196 1081];
%方法一
[m,n]=size(X);
for i=1:n
A(1,i)=norm(X(:,i));
end
A=repmat(A,m,1);
Y=X./A;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式