倍频程/Matlab中的scale()R函数等价物
为了避免循环,是否有办法将数据矩阵集中在列(或行)的平均值周围,按标准偏差(也可按列或行)缩放每个条目 在R中,这很简单:倍频程/Matlab中的scale()R函数等价物,r,matlab,octave,R,Matlab,Octave,为了避免循环,是否有办法将数据矩阵集中在列(或行)的平均值周围,按标准偏差(也可按列或行)缩放每个条目 在R中,这很简单:scale(数据,中心=T,scale=T)) 但是我不知道如何在Ocatave或Matlab中实现相同的基本预处理。没有一个函数可以做到这一点,但是您可以使用dim参数来实现这一点。我们还可以使用bsxfun将其全部打包成一行 A = rand(5, 4); % Column-wise bsxfun(@rdivide, bsxfun(@minus, A, mean(A,
scale(数据,中心=T,scale=T))
但是我不知道如何在Ocatave或Matlab中实现相同的基本预处理。没有一个函数可以做到这一点,但是您可以使用
dim
参数来实现这一点。我们还可以使用bsxfun
将其全部打包成一行
A = rand(5, 4);
% Column-wise
bsxfun(@rdivide, bsxfun(@minus, A, mean(A, 1)), std(A, [], 1))
% Row-wise
bsxfun(@rdivide, bsxfun(@minus, A, mean(A, 2)), std(A, [], 2))
解释
使用dim
参数mean
可以计算A
中每列的平均值
M = mean(A, 1)
然后,我们可以使用bsxfun
从每列中的每个值中减去平均值(@减去
)。我们需要使用bsxfun
,因为M
是1 x ncol
,A
是nRows x ncol
bsxfun
将自动为我们广播操作
B = bsxfun(@minus, A, M);
然后我们要计算每列的标准偏差,再次使用dim
参数(第三个输入)
将每一列除以这个标准差
bsxfun(@rdivide, B, S);
所以把这些都放在一起
bsxfun(@rdivide, bsxfun(@minus, A, mean(A, 1)), std(A, [], 1))
要执行行操作,我们只需将
dim
参数从1(列)切换到2(行)。没有一个函数可以执行此操作,但您可以使用std
和mean
的dim
参数来完成此操作。我们还可以使用bsxfun
将其全部打包成一行
A = rand(5, 4);
% Column-wise
bsxfun(@rdivide, bsxfun(@minus, A, mean(A, 1)), std(A, [], 1))
% Row-wise
bsxfun(@rdivide, bsxfun(@minus, A, mean(A, 2)), std(A, [], 2))
解释
使用dim
参数mean
可以计算A
中每列的平均值
M = mean(A, 1)
然后,我们可以使用bsxfun
从每列中的每个值中减去平均值(@减去
)。我们需要使用bsxfun
,因为M
是1 x ncol
,A
是nRows x ncol
bsxfun
将自动为我们广播操作
B = bsxfun(@minus, A, M);
然后我们要计算每列的标准偏差,再次使用dim
参数(第三个输入)
将每一列除以这个标准差
bsxfun(@rdivide, B, S);
所以把这些都放在一起
bsxfun(@rdivide, bsxfun(@minus, A, mean(A, 1)), std(A, [], 1))
要执行行操作,我们只需将
dim
参数从1(列)切换到2(行)。在倍频程中,有两个函数用于此center()和zscore()。center只是减去平均值,而zscore也除以sd(一种有时被称为标准化的操作)
中心(x)
通过减去其平均值将数据居中
如果x是一个向量,减去它的平均值。如果x是一个矩阵,则对每个矩阵执行上述操作
专栏。如果给出了可选参数dim,请按此操作
维度
及
zscore(x,opt,dim)计算x的Z分数
如果x是一个向量,减去它的平均值,除以它的标准偏差。
如果标准偏差为零,则改为除以1
可选参数opt确定在以下情况下使用的规范化:
计算标准偏差,其定义与
std的相应参数
如果x是矩阵,则沿第一个非单体维度计算。
如果给出了第三个可选参数dim,请按此操作
维度
在倍频程中,有两个函数用于此center()和zscore()。center只是减去平均值,而zscore也除以sd(一种有时被称为标准化的操作) 中心(x) 通过减去其平均值将数据居中 如果x是一个向量,减去它的平均值。如果x是一个矩阵,则对每个矩阵执行上述操作 专栏。如果给出了可选参数dim,请按此操作 维度 及 zscore(x,opt,dim)计算x的Z分数 如果x是一个向量,减去它的平均值,除以它的标准偏差。 如果标准偏差为零,则改为除以1 可选参数opt确定在以下情况下使用的规范化: 计算标准偏差,其定义与 std的相应参数 如果x是矩阵,则沿第一个非单体维度计算。 如果给出了第三个可选参数dim,请按此操作 维度
你看过这个吗?你看过这个吗?全新的Ocatve/Matlab。。。请您告诉我
@
是做什么的好吗?@AntoniParellada正在添加一个描述。@AntoniParellada您希望它除以或乘以标准偏差吗?我现在想问一下。。。如果我们要执行PCA或梯度下降,它应该被划分;那么您是否只需键入@divide
?还有,std(A,[],1)
中的[]
部分的含义或需要是什么?@AntoniParellada我刚刚用除法更新了它。你想用。另外,[]
输入是因为第二个输入是权重,[]
确保默认值在Ocatve/Matlab中全新使用。。。请您告诉我@
是做什么的好吗?@AntoniParellada正在添加一个描述。@AntoniParellada您希望它除以或乘以标准偏差吗?我现在想问一下。。。如果我们要执行PCA或梯度下降,它应该被划分;那么您是否只需键入@divide
?还有,std(A,[],1)
中的[]
部分的含义或需要是什么?@AntoniParellada我刚刚用除法更新了它。你想用。另外,[]
输入是因为第二个输入是重量,[]
确保使用默认值