Matlab / Octave:带数组和数字作为参数的函数 - >下标错误

时间:2014-03-14 15:37:43

标签: arrays matlab function octave

由于Octave似乎没有为1D或2D带来高斯函数,我试图自己定义这些函数。

我开始使用定义

function [result] = Gauss(x,[x0 sigma])
result = 1/(sqrt(2*pi*sigma^2))*exp(-1(x-x0)^2/2*sigma^2)
end

导致下标错误

error: subscript indices must be either positive integers or logicals

我试图按如下方式修改函数定义:

function [result] = Gauss(x,[x0 sigma])

因为我从Matlab找到了一个函数gaussmf,你可以在x0和sigma中传递数组x和单个数字。不幸的是,我仍然收到订阅错误。

所以我的问题是:在这种情况下,如何传递数组和其他非数组参数? 我认为这将是相当自动的,但似乎不是......;)

由于

1 个答案:

答案 0 :(得分:0)

我怀疑错误来自:

exp(-1(x-x0)^2/2*sigma^2)

我怀疑你想要

exp(-(x-x0)^2/2*sigma^2)

代替。正如您所写的那样,您正尝试使用1索引x-x0。实际上,如果x是一个向量,您可能需要:

exp(-(x-x0).^2/2*sigma^2)