point_to_space_distance.m

来自「一个用EM算法的源程序」· M 代码 · 共 24 行

M
24
字号
function pointToSpaceDistance = point_to_space_distance(samples, subspaceBasis)
% function pointToSpaceDistance = point_to_space_distance(samples, subspaceBasis)
%
% Computes the Euclidean distance between one or more vectors and a subspace. 
%  (i.e. the normal of (the vectors minus their projection onto the subspace ))
% 
% Inputs:
%   samples -       The samples to be projected, represented as columns.
%
%   subspaceBasis - The basis for the subspace to project onto; each column
%                   is a basis vector.
%
% Output:
%   pointToSpaceDistance -  A row vector of distances between the points and
%                           the subspace.

if (size(samples,2) == 1),
    pointToSpaceDistance = norm(samples - subspaceBasis*(subspaceBasis'*samples));
else
    perpVectors = samples - subspaceBasis*(subspaceBasis'*samples);
    pointToSpaceDistance = sqrt(sum(perpVectors.*perpVectors));
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?