Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 矩阵中向量的平方元素之和是一?(将所有测试样本标准化,以输入PNN)_Matlab - Fatal编程技术网

Matlab 矩阵中向量的平方元素之和是一?(将所有测试样本标准化,以输入PNN)

Matlab 矩阵中向量的平方元素之和是一?(将所有测试样本标准化,以输入PNN),matlab,Matlab,我有一个2 x 121的矩阵。我想规范化这个矩阵,使每个列向量的平方元素之和等于1 x1 = -4:0.1:8; x2 = -4:0.1:8; x = [x1;x2]; 我试过很多方法 x = [x1/sqrt(x1(1)^2+x2(1)^2),x2/sqrt(x1(1)^2+x2(1)^2)] 最后一个结果是1 x 242矢量。我需要的结果是一个2x1列向量,其中原始矩阵在成为下一层的输入之前被规格化。我似乎无法从列的角度理解这一点: 行方式: 使用MATLAB R2019b运行首先计

我有一个2 x 121的矩阵。我想规范化这个矩阵,使每个列向量的平方元素之和等于1

x1 = -4:0.1:8;
x2 = -4:0.1:8;
x = [x1;x2];
我试过很多方法

x = [x1/sqrt(x1(1)^2+x2(1)^2),x2/sqrt(x1(1)^2+x2(1)^2)]
最后一个结果是1 x 242矢量。我需要的结果是一个2x1列向量,其中原始矩阵在成为下一层的输入之前被规格化。我似乎无法从列的角度理解这一点:


行方式:
使用MATLAB R2019b运行

首先计算平方和,然后将每列(使用索引)除以每个值。除非您需要写121个“+”符号:),否则您将需要函数
sum
),如果您实现了您的需求,您将看到所有列都将变得相同,并且等于
[1;1]/sqrt(2)
。也许你想规范化每一行?@AnderBiguri我尝试了你的方法,结果得到了[0.5;0.5]。计算x之前的步骤=[x1/x;x2/x]。其中x1和x2的每个元素都被平方,然后连接为x=[x1;x2],并求和x=sum(x)。这是你的意图吗?@CrisLuengo我想你是对的。规范化每一行会产生更多的错误sense@eliboy8所以您希望得到规范化的结果,当您将给定行中的每个元素平方,然后将这些元素添加到给定行中时,它将添加到1,对吗?也只是为了确认,当你说平方时,你的意思是元素乘以它本身,对吗?或者平方根?那么矩阵x中每个向量的元素加起来就是1。例如,考虑x中的向量[x1;x2],使得x1=0.47和x2=0.53。在该特定向量中,和为1。因为x1和x2在我的问题中共享相同的范围,所以矩阵x的每个向量中的值都是相同的。所以规范化基本上是x内每个向量的平方元素之和(元素平方),其中x1+x2加起来等于1,我想我们需要添加一些图表来添加一些说明。你有预期的结果/矩阵吗?我在另一个矩阵上使用了你的逐列方法,效果非常好。我真的很感谢你的帮助!
x1 = -4: 0.1: 8;
x2 = -4: 0.1: 8;
x = [x1; x2];

%Squaring all the elements within the matrix%
X_Squared = x.^2;

%Finding the sum of each column after squaring elements%
Column_Wise_Sum = sum(X_Squared,1);

%Finding the normalization factors%
Normalization_Factors = sqrt(1./Column_Wise_Sum);
Normalization_Factors = repmat(Normalization_Factors,2,1);

Normalized = x.*Normalization_Factors;
%Checking%
sum(Normalized.^2,1)
x1 = -4: 0.1: 8;
x2 = -4: 0.1: 8;
x = [x1; x2];

%Scalar(e1)^2 + Scalar(e2)^2 + Scalar(e3)^2 . . . = 1%
%Scalar[(e1)^2 + (e2)^2 + (e3)^2 . . . ] = 1%
%Scalar = 1/[(e1)^2 + (e2)^2 + (e3)^2 . . . ];

Squared = x(1,:).^2;
Squared_Sum = sum(Squared,'all');
Scalar = 1/Squared_Sum;
Normalized(1,:) = x(1,:).*sqrt(Scalar);

Squared = x(2,:).^2;
Squared_Sum = sum(Squared,'all');
Scalar = 1/Squared_Sum;
Normalized(2,:) = x(2,:).*sqrt(Scalar);
%Checking%
sum(Normalized.^2,2)