norm
R中函数使用的默认范数是1范数有什么原因吗?
我正在将一些代码从matlab
to翻译R
,我遇到了这个问题,因为默认情况下是 2-norm。
对我来说,默认值应该是 2 范数,这似乎很直观,它转换为欧几里得距离。
我希望有人能澄清这一点,或者给出这个选择的任何历史原因。我问这个问题的原因是要了解 和 中规范函数的实现matlab
选择R
。以下是 R 中 norm 的实现
function (x, type = c("O", "I", "F", "M", "2"))
{
if (identical("2", type)) {
svd(x, nu = 0L, nv = 0L)$d[1L]
}
else .Internal(La_dlange(x, type))
}
默认选择是"O"
。在 matlab 和python numpy中,默认值为 2-norm。对我来说这似乎很奇怪,这R
与此不一致。
我的直觉是默认选项的实现应该符合最常用的规范。