由于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和单个数字。不幸的是,我仍然收到订阅错误。
所以我的问题是:在这种情况下,如何传递数组和其他非数组参数? 我认为这将是相当自动的,但似乎不是......;)
由于
答案 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)