Matlab 预期的标准值和平均值错误
我有一个包含3列的矩阵Matlab 预期的标准值和平均值错误,matlab,Matlab,我有一个包含3列的矩阵X。对于问题的答案X=randn(5,3)。 我想规范化XS.T.的列。每列将具有0平均值和1标准值。我使用了以下代码: X=(X-mean(X))./std(X); 我的性病是1。但是,我的平均值非常小,接近0,但不是必需的0。我试着用数字来解释: X=1:15; X=reshape(X,[5 3]); mean(X-mean(X)); 这为每列提供了0值 X=1:15; X=reshape(X,[5 3]); mean((X-mean(X))./std(X));
X
。对于问题的答案X=randn(5,3)
。
我想规范化X
S.T.的列。每列将具有0
平均值和1
标准值。我使用了以下代码:
X=(X-mean(X))./std(X);
我的性病是1
。但是,我的平均值非常小,接近0
,但不是必需的0
。我试着用数字来解释:
X=1:15;
X=reshape(X,[5 3]);
mean(X-mean(X));
这为每列提供了0
值
X=1:15;
X=reshape(X,[5 3]);
mean((X-mean(X))./std(X));
但事实并非如此。但是0/任何东西仍然是0。我错过了什么
- 为什么我得不到
值0
- 我得到的值是否足够用于预聚类算法规范化
r = 5; c = 3;
X=randn(r,c);
Xm=repmat(mean(X),r,1);
Xstd = repmat(std(X),r,1);
Xn = (X-Xm)./Xstd;
mean(Xn)
std(Xn)
对我来说这是打印出来的
ans =
1.0e-16 *
-0.6661 0 0.4441
ans =
1.0000 1.0000 1.0000
这似乎正是你想要的。。。注意平均值上的1e-16乘数。。。这本质上是0,有一些浮点错误。这是一个版本,它实现了我认为您正在尝试的功能。。。您需要复制该矩阵,因为X-mean(X)无效(如果您使用的是标准实现)——您不能从5x3中减去1x3
r = 5; c = 3;
X=randn(r,c);
Xm=repmat(mean(X),r,1);
Xstd = repmat(std(X),r,1);
Xn = (X-Xm)./Xstd;
mean(Xn)
std(Xn)
对我来说这是打印出来的
ans =
1.0e-16 *
-0.6661 0 0.4441
ans =
1.0000 1.0000 1.0000
这似乎正是你想要的。。。注意平均值上的1e-16乘数。。。这本质上是0,有一些浮点错误。您确定编写的代码正确吗?复制得到的结果会导致矩阵不匹配错误。。。平均值返回每行的平均值,因此
X-Mean(X)
无效…检查是否有本地文件实现Mean
和std
函数。@Philip我对代码有把握。我只是复制和粘贴检查<代码>平均值(X)给出了一行,其中包含每列的平均值X-平均值(X)
从每列中减去每列的平均值。@Rotem您是指原始值以外的值吗?我肯定没有。代码:X=1:15;X=重塑(X,[53]);均值(X-均值(X))代码>给出了一个错误。你确定你在使用Matlab吗?使用清除所有
,然后再次检查。您确定编写的代码正确吗?复制得到的结果会导致矩阵不匹配错误。。。平均值返回每行的平均值,因此X-Mean(X)
无效…检查是否有本地文件实现Mean
和std
函数。@Philip我对代码有把握。我只是复制和粘贴检查<代码>平均值(X)
给出了一行,其中包含每列的平均值X-平均值(X)
从每列中减去每列的平均值。@Rotem您是指原始值以外的值吗?我肯定没有。代码:X=1:15;X=重塑(X,[53]);均值(X-均值(X))代码>给出了一个错误。你确定你在使用Matlab吗?使用清除所有
,然后再次检查。我可以并且已经从5x3中减去1x3(我已经仔细测试了vry的正确值)。我得到的值与您使用我的代码得到的值相同。也许这是MATLAB版本差异的衍生。无论如何,我的问题是指你的“本质上是0”评论。你能详细解释一下为什么我们没有得到确定的零吗?嗯,你肯定在使用一个非标准的实现,如果它对你有用的话。。。在任何情况下,浮点数都不是无限精确的。检查,并进行详细说明。或者只是谷歌的“浮点算术错误”的差异可能是由于一个“计算机视觉”的期望?我确信我\没有人在这台机器上实现过nomean()
或减法功能。哦,显然Matlab2016b增加了减法兼容尺寸的功能——我还在2015年!我可以并且已经从5x3中减去1x3(我已经仔细测试了vry的正确值)。我得到的值与您使用我的代码得到的值相同。也许这是MATLAB版本差异的衍生。无论如何,我的问题是指你的“本质上是0”评论。你能详细解释一下为什么我们没有得到确定的零吗?嗯,你肯定在使用一个非标准的实现,如果它对你有用的话。。。在任何情况下,浮点数都不是无限精确的。检查,并进行详细说明。或者只是谷歌的“浮点算术错误”的差异可能是由于一个“计算机视觉”的期望?我确信我\没有人在这台机器上实现过nomean()
或减法功能。哦,显然Matlab2016b增加了减法兼容尺寸的功能——我还在2015年!