高斯基函数返回向量而不是标量

时间:2014-10-02 23:39:02

标签: matlab vector gaussian

我试图在matlab中实现高斯基函数,但我不知道如何让它不返回向量。我的数据是10,000(样本)x 21(功能)。我一直在做研究,我已经看到了使用统计工具箱的建议,但我想只使用matlab代码。以下是我正在使用的高斯基函数。

以下是我正在使用的matlab代码。

function [ scalar_value ] = gaussian_basis( x_vector, mu_vector)
    % x_vector 1 x 21 vector
    % mu_vector 1 x 21 vector

    scalar_value = exp(-((x_vector - mu_vector).^2/ 2 * .5^2));

我不知道自己错过了什么。正如我所提到的,我不知道如何使这个返回标量值。非常感谢任何帮助或指导。

1 个答案:

答案 0 :(得分:0)

我认为你缺少的是高斯基函数通常在

上定义

enter image description here

而不是

enter image description here

如果这是正确的解释,那么你想要:

scalar_value = exp(-sum((x_vector - mu_vector).^2, 2)/ (2 * .5^2));

而不是

scalar_value = exp(-((x_vector - mu_vector).^2/ 2 * .5^2));

后者,如评论中所述,将始终返回一个向量,因为您不包括在第二维上聚合的任何操作。